web-dev-qa-db-ja.com

JavaFX-特定のNodeをAnchorPaneから削除する方法

SceneBuilder 8.0.0とJavaFX 8を使用しています。
私はButton btnLabel lblAnchorPane ap
アプリケーションが起動すると、btnlblapにアタッチされます。

これらのノードの1つを削除するにはどうすればよいですか?apからすべてのノードを削除するclear()メソッドしか知りません)。ありがとう。

12
Calips

JavaFXでは、.getChildren()に続けて.remove(Object o)を使用して、ノードを Parent (例: AnchorPane )から簡単に削除できます。

参照

したがって、これらのノードへの直接参照がある場合は、次のコードを使用してButtonAnchorPaneから削除できます。

ap.getChildren().remove(btn);

Lookup

何らかの理由でButton btnへの参照がない場合は、 lookup(String selector) を使用して、次のように検索および削除できます。

ap.getChildren().remove(ap.lookup('.button'));

FXML

または、最後に、SceneBuilder(したがってfxml)を使用しているので、コントローラが接続されていることを確認し、ボタンにIDを割り当てて、参照を保持して、次のように削除します。

// ... somewhere in your class
@FXML
private Button myButtonId;

// ... somewhere in a method
ap.getChildren().remove(myButtonId);
19
Mike Rombout