JavaFX – 如何从AnchorPane中删除特定节点
我正在使用SceneBuilder 8.0.0和JavaFX 8。
我有一个Button btn
和一个Label lbl
附加到AnchorPane ap
。
当应用程序启动时, btn
和lbl
附加到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);