[英]JavaFX Hover Pane over Pane
我有一个带有中心窗格的边框窗格-VBox。 VBox包含一个GridPane和一个VBox窗格。
VBox(位于VBox内部的VBox)最初设置为不可见。
我想做的是,是否将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
不要为您放置临时vbox:
temporary.setManaged(false);
然后layoutX
layoutY
一样设置layoutX
和layoutY
应该可以。
您可能需要调整临时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);
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.