在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从其父级看不到的。