JavaFX HBox hide item

前端 未结 2 637
离开以前
离开以前 2020-12-09 08:45

How can i hide an item in HBox, and made space used by this item available to other items.

TitledPane legendPane = new TitledPane(\"Legend\", _legend);
legen         


        
2条回答
  •  余生分开走
    2020-12-09 09:12

    You can temporarily remove it from the scene:

    legendPane.visibleProperty().addListener(new ChangeListener() {
        @Override
        public void changed(ObservableValue observable, Boolean oldValue, Boolean newValue) {
            if (newValue) {
                hbox.getChildren().add(legendPane);
            } else {
                hbox.getChildren().remove(legendPane);
            }
        }
    });
    

    Or manipulate its size:

    legendPane.visibleProperty().addListener(new ChangeListener() {
        @Override
        public void changed(ObservableValue observable, Boolean oldValue, Boolean newValue) {
            if (newValue) {
                legendPane.setMaxSize(Double.MAX_VALUE, Double.MAX_VALUE);
                legendPane.setPrefSize(prefWidth, prefHeight);
            } else {
                legendPane.setMaxSize(0, 0);
                legendPane.setMinSize(0, 0);
    
            }
        }
    });
    

提交回复
热议问题