JavaFX - 如何从锚窗格中删除特定节点
我使用的是 SceneBuilder 8.0.0 和 JavaFX 8。
我有一个和一个附加到一个.
当应用程序启动并附加到 时。Button btn
Label lbl
AnchorPane ap
btn
lbl
ap
如何删除这些节点之一?(我只知道 clear() 方法,它从 中删除所有节点)。谢谢。
ap
我使用的是 SceneBuilder 8.0.0 和 JavaFX 8。
我有一个和一个附加到一个.
当应用程序启动并附加到 时。Button btn
Label lbl
AnchorPane ap
btn
lbl
ap
如何删除这些节点之一?(我只知道 clear() 方法,它从 中删除所有节点)。谢谢。
ap
在JavaFX中,节点可以简单地从父级(例如AnchorPane)中删除,使用以下.getChildren()
.remove(Object o)
因此,如果您有对这些节点的直接引用,则可以使用以下代码从 中删除 :Button
AnchorPane
ap.getChildren().remove(btn);
如果由于某种原因,您没有对 的引用,则可以使用 lookup(字符串选择器)来查找并删除它,如下所示:Button btn
ap.getChildren().remove(ap.lookup('.button'));
或者最后,由于您正在使用SceneBuilder(以及fxml),因此您还可以确保连接了控制器,并为按钮分配了一个ID,以获取引用并删除它,如下所示:
// ... somewhere in your class
@FXML
private Button myButtonId;
// ... somewhere in a method
ap.getChildren().remove(myButtonId);