JavaFX – 如何从AnchorPane中删除特定节点

我正在使用SceneBuilder 8.0.0和JavaFX 8。
我有一个Button btn和一个Label lbl附加到AnchorPane ap
当应用程序启动时, btnlbl附加到ap

如何删除其中一个节点? (我只知道clear()方法从ap删除所有节点)。 谢谢。

在JavaFX中,可以使用.getChildren()跟随.remove(Object o)简单地从Parent (例如AnchorPane )中删除节点。

参考

因此,如果您直接引用这些节点,则可以使用以下代码从AnchorPane删除Button

 ap.getChildren().remove(btn); 

抬头

如果由于某种原因,你没有对Button btn的引用,你可以使用lookup(字符串选择器)来查找和删除它,如下所示:

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

FXML

或者最后,因为您使用的是SceneBuilder(以及fxml),您还可以确保连接了一个Controller,并为您的Button分配一个id以获取引用并将其删除,如下所示:

 // ... somewhere in your class @FXML private Button myButtonId; // ... somewhere in a method ap.getChildren().remove(myButtonId);