如何要求窗格重新布局

时间:2012-10-26 15:19:41

标签: java layout javafx

在Javafx2中,当您向窗格添加项目时,似乎使一个不可见,它仍占用布局中的空间。有没有人知道在让孩子看不见之后如何让窗格调整它的布局?

以下是演示我的问题的示例程序。 VBox中有3个按钮。当您单击顶部或中间按钮时,它将变为不可见,但会留下间隙。

public class VisibilityTest extends Application {

Button button1 = null;
Button button2 = null;
Button button3 = null;
VBox   box     = null;

@Override
public void start(Stage primaryStage) {
    button1 = new Button("Button 1");
    button2 = new Button("Button 2");
    button3 = new Button("Button 3");

    box = new VBox();
    box.getChildren().add(button1);
    box.getChildren().add(button2);
    box.getChildren().add(button3);
    button1.setOnAction(new EventHandler<ActionEvent>() {
        @Override
        public void handle(ActionEvent t) {
            button1.setVisible(false);
        }
    });
    button2.setOnAction(new EventHandler<ActionEvent>() {
        @Override
        public void handle(ActionEvent t) {
            button2.setVisible(false);
        }
    });
    button3.setOnAction(new EventHandler<ActionEvent>() {
        @Override
        public void handle(ActionEvent t) {
            button3.setVisible(false);
        }
    });
    Scene scene = new Scene(box, 300, 250);
    primaryStage.setScene(scene);
    primaryStage.show();
}
}

2 个答案:

答案 0 :(得分:1)

调用更高级别组件的validate()

答案 1 :(得分:0)

您需要从场景图中删除控件。

parent.getChildren().remove(theControl);