1. ホーム
  2. java

[解決済み] JavaFX - AnchorPaneから特定のノードを削除する方法

2022-03-12 10:02:29

質問

SceneBuilder 8.0.0とJavaFX 8を使用しています。
私の場合は Button btnLabel lbl に添付されている AnchorPane ap .
アプリケーションの起動時 btnlblap .

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

どのように解決するのですか?

JavaFX では、ノードは単に (例えば アンカーペイン を使用しています。 .getChildren() に続いて .remove(Object o)

参考

したがって、これらのノードを直接参照している場合は、以下のコードで Button から AnchorPane :

ap.getChildren().remove(btn);

ルックアップ

もし、何らかの理由で 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);