簡體   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