在JavaFX中,如果我有一个包含2个VBox
元素的场景,并且每个元素中VBox
都有多个元素Label
。
如果将顶部设置VBox
为不可见,为什么底部VBox
不向上移动到顶部所在的场景VBox
?
该元素VBox
是不可见的,但我希望其他对象能够移入其位置。
我正在使用FXML加载控件。
在JavaFX中,如果我有一个包含2个VBox
元素的场景,并且每个元素中VBox
都有多个元素Label
。
如果将顶部设置VBox
为不可见,为什么底部VBox
不向上移动到顶部所在的场景VBox
?
该元素VBox
是不可见的,但我希望其他对象能够移入其位置。
我正在使用FXML加载控件。
Answers:
Node.setVisible(boolean)
只需切换的可见性状态Node
。
要从Node
其父级布局计算中排除a ,您还必须通过调用设置其托管状态Node.setManaged(false)
。
如果要在可见性旁边自动更新托管状态,则可以使用@jewelsea指出的绑定: node.managedProperty().bind(node.visibleProperty());
尝试同时使用setVisible和managedProperty。这是一个例子:
myHBox.setVisible(false);
myHBox.managedProperty().bind(myHBox.visibleProperty());
VBox
只是看不见的,而不是removed
从其父级看不到的。