【问题标题】:How to set VBox size to scene如何将 VBox 大小设置为场景
【发布时间】:2016-10-02 11:02:25
【问题描述】:

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

提前致谢:)

【问题讨论】:

  • 那为什么不能添加一个ChangeListener呢?
  • 因为菜单栏和边框窗格中没有允许我自动调整所有内容大小的方法,在这种情况下,我应该调整 vbox 子项的每个元素的大小,我只想知道如果 javafx 提供了特定的方法来执行此操作。
  • 菜单栏和边框窗格的子元素还有相对大小

标签: java javafx


【解决方案1】:

你可以试试这个技巧:

@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();
    }

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

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

【讨论】:

    猜你喜欢
    • 2015-04-10
    • 1970-01-01
    • 2014-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多