JavaFX - setVisible 隐藏元素,但不重新排列相邻节点

2022-08-31 10:32:00

在JavaFX中,如果我有一个场景有2个元素,每个元素都有多个元素。
如果将顶部设置为不可见,为什么底部不会向上移动顶部所在的场景?VBoxVBoxLabelVBoxVBoxVBox

这是看不见的,但我希望其他物体移动到它的位置。VBox

我正在使用FXML加载我的控件。


答案 1

Node.setVisible(boolean)只需切换 .Node

若要从其父布局计算中排除 a,您还必须通过调用 Node.setManaged(false) 来设置其托管状态。Node

如果希望托管状态与可见性一起自动更新,则可以使用绑定,如@jewelsea指出的那样:node.managedProperty().bind(node.visibleProperty());


答案 2

由于它是不可见的,因此不会移动到顶部。您必须使用如下内容将其删除:

// remove
vbox.getChildren().remove(...)

一旦你删除了你想要不可见的元素,那么另一个元素应该移动到顶部。


推荐