JavaFX – setVisible не «скрывает» элемент

В JavaFX, если у меня есть сцена с двумя элементами VBox и у каждого VBox есть несколько Label .
Если я устанавливаю верхний VBox в невидимый , почему нижний VBox не продвигается вверх по сцене, где находится верхний VBox ?

VBox невидим, но я ожидал бы, что другие объекты переместятся на его место.

Я использую FXML для загрузки своих элементов управления.

Node.setVisible(boolean) просто переключает состояние видимости Node .

Чтобы исключить Node из вычислений макета родителя, вы также должны установить его управляемое состояние, вызвав Node.setManaged(false) .

Если вы хотите, чтобы управляемое состояние автоматически обновлялось вместе с видимостью, вы можете использовать привязку, как указывал node.managedProperty().bind(node.visibleProperty()); : node.managedProperty().bind(node.visibleProperty());

Так как он невидим, он не будет двигаться на вершину. Вы должны удалить его с чем-то вроде:

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

После удаления элемента, который вы хотите невидимым, другой элемент должен перейти в начало.

Вместо того, чтобы скрывать vbox, вы должны удалить его из «Дети», и если вы хотите его снова показать, снова добавьте vbox.

Interesting Posts
Давайте будем гением компьютера.