2017-02-10 6 views
-1

私は長方形で作成されたGridPaneを持っています。私がしたいのは、特定の矩形(グリッドペインのメンバー)上にマウスを置いて新しいペインを表示することです。このVBoxコードの例を下に示します。どのように私はそれをホバー上に表示することができますか?JavaFXホバープロパティー

Rectangle r = new Rectangle(RECTANGLE_SIZE, RECTANGLE_SIZE); 
      r.hoverProperty().addListener((observable) -> { 
       r.setFill(Color.BLACK); 
       VBox box = new VBox(); 
       Button x = new Button("Test"); 
       box.getChildren().add(x); 
      }); 

セットの塗りつぶしを使用すると、VBoxの親だろうNodeを指定する必要があなたの例では、適切

答えて

1

動作します。今の場合、常に新しいVBoxを作成しますが、それを現在のシーングラフには追加しないでください。これを試してみてください:

r.hoverProperty().addListener((ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean show) -> { 
     if (show) { 
      VBox box = new VBox(); 
      Button x = new Button("Test"); 
      box.getChildren().add(x); 
      parent.getChildren().add(box); 
     } else { 
      parent.getChildren().clear(); 
     } 
}); 
+0

親ノードとは何ですか? GridPaneシーンに追加すると、すべての矩形オブジェクトが消去されます –

+0

'GridPane'を' StackPane'に追加しようとすると、もう一つ空の 'Pane'がStackPaneに追加されます。この場合、 'GridPane'の上に' VBox'を追加することができます。 – MBec

関連する問題