JavaFX에서 2 개의 VBox
요소 가있는 장면이 있고 각각 VBox
에 여러 요소 가 Label
있는 경우.
맨 위 VBox
를 보이지 않게 설정하면 맨 위 가 있던 장면에서 맨 아래 VBox
가 위로 이동 하지 않는 이유 VBox
는 무엇입니까?
는 VBox
이다 보이지 않는 하지만 난 다른 물체가 그 자리로 이동하는 기대.
내 컨트롤을로드하기 위해 FXML을 사용하고 있습니다.
답변
Node.setVisible(boolean)
의 가시성 상태를 전환합니다 Node
.
Node
부모 레이아웃 계산에서 를 제외하려면 추가로를 호출하여 관리 상태를 설정해야합니다 Node.setManaged(false)
.
가시성과 함께 관리 상태가 자동으로 업데이트되도록하려면 @jewelsea가 지적한대로 바인딩을 사용할 수 있습니다. node.managedProperty().bind(node.visibleProperty());
답변
보이지 않기 때문에 맨 위로 이동하지 않습니다. 다음과 같이 제거해야합니다.
// remove
vbox.getChildren().remove(...)
보이지 않게하려는 요소를 제거하면 다른 요소가 맨 위로 이동해야합니다.
답변
vbox를 숨기는 대신 Children에서 제거 하고 다시 표시 하려면 vbox를 다시 추가 해야합니다.
답변
setVisible과 managedProperty를 함께 사용하십시오. 다음은 그 예입니다.
myHBox.setVisible(false);
myHBox.managedProperty().bind(myHBox.visibleProperty());
답변
노드를 숨기고 숨김 해제하려면 숨기려면 노드 크기를 0으로 조정합니다. 이렇게하면 노드가 사용자에게 표시되지 않으므로 공간을 차지하지 않으므로 표시되도록하려면 크기를 다시 조정하여 표시되도록합니다.
답변
