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

Cal*_*ips 10 java javafx javafx-8

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

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

Mik*_*out 17

在JavaFX中,可以使用以下方法简单地从节点(例如AnchorPane)中删除节点.getChildren().remove(Object o)

参考

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

ap.getChildren().remove(btn);
Run Code Online (Sandbox Code Playgroud)

抬头

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

ap.getChildren().remove(ap.lookup('.button'));
Run Code Online (Sandbox Code Playgroud)

FXML

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

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

// ... somewhere in a method
ap.getChildren().remove(myButtonId);
Run Code Online (Sandbox Code Playgroud)