如何将VBox大小设置为场景

时间:2016-10-02 11:02:26

标签: java javafx

我在一个场景中有一个VBox作为root,这个VBox包含一个MenuBar和一个BorderPane。 我要知道的是,当窗口调整大小时,如何自动调整所有内容的大小(我猜只有vbox应该足够了)wideout将一个changelistener添加到scene.widthproperty属性。

提前致谢:)

1 个答案:

答案 0 :(得分:0)

你可以试试这个黑客:

@Override
    public void start(Stage primaryStage) throws Exception
    {
        //Get visible bounds of the screen
        Rectangle2D screenbounds=Screen.getPrimary().getVisualBounds();
        VBox root=new VBox();
        //Set scene's size to maximum
        Scene scene=new Scene(root,screenbounds.getWidth(),screenbounds.getHeight());
        primaryStage.setScene(scene);
        HBox one =new HBox(),two=new HBox();
        one.setPrefSize(400,500);
        two.setPrefSize(400,700);
        one.setBackground(new Background(new BackgroundFill(Color.BLUE,null,null)));
        two.setBackground(new Background(new BackgroundFill(Color.DARKORANGE,null,null)));
        root.getChildren().addAll(one,two);
        primaryStage.show();
    }

使应用程序窗口使用所有可用的屏幕空间。当您垂直调整给定窗口的大小时,框将适当缩小。

您仍然需要设置首选的节点大小才能调整“自动”大小。