gpt4 book ai didi

JavaFX 将 Pane 悬停在 Pane 上

转载 作者:行者123 更新时间:2023-12-02 02:59:36 27 4
gpt4 key购买 nike

我有一个带有中心 Pane 的边框 Pane - VBox。VBox 包含一个 GridPane 和一个 VBox Pane 。

垂直框(垂直框内的垂直框)最初设置为不可见。

我想要做的是,如果将 GridPane 的一个元素(即 grid[x][y])悬停以将 VBox 的状态更改为可见。

这是我使用的代码。临时是Vbox

 grid_map[19][19].hoverProperty().addListener((ObservableValue<?
extends Boolean> observable, Boolean oldValue, Boolean show) -> {
if (show) {
temporary.setLayoutX( grid_map[19][19].getLayoutX()); // this is not really working

temporary.setVisible(true);
} else {
temporary.setVisible(false);
// grid_map[19][19].get
}

});

它正在工作,但它在网格的底部显示 VBox。我想要做的是获取悬停元素的坐标,并在该元素上方或其左侧或右侧显示 VBox。我怎样才能做到这一点?

最佳答案

告诉“外部”Vbox 不要为您定位临时垂直盒:

temporary.setManaged(false);

然后按照您当前的操作设置 layoutXlayoutY 应该可以工作。

您可能需要调整临时 vbox 的大小,如下所示:

grid_map[19][19].hoverProperty().addListener((observable, oldValue, show) -> {
if (show) {

double x = grid_map[19][19].getLayoutX();
double y = grid_map[19][19].getLayoutY();
double w = temporary.prefWidth(-1);
double h = temporary.prefHeight(w);
temporary.resizeRelocate(x, y, w, h);
temporary.setVisible(true);
} else {
temporary.setVisible(false);
}

});

关于JavaFX 将 Pane 悬停在 Pane 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42538361/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com