繁体   English   中英

JavaFX Hover Pane over Pane

[英]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一样设置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);
    }

});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM