在JavaFX中无法设置初始窗口大小

编程语言 2026-07-09

我无法设置初始窗口大小。应用程序始终显示200x200。

    public class tcase extends Application
    {
        @Override
        public void start(Stage primaryStage)
        {
            primaryStage.setTitle("test case");

            root.setPrefWidth(1044);
            root.setPrefHeight(728);

            root.setBottom(statusBar);

            Scene scene = new Scene(root, 1044, 728);
            primaryStage.sizeToScene();
            primaryStage.setScene( scene );

            primaryStage.show();
        }

        public static void main(String[] args)
        {
            launch(args);
        }
    }

解决方案

你正在执行一些不必要的步骤,这些步骤削弱了JavaFX的默认且有用的行为。无需设置窗口大小。也不需要设置Scene的大小。也不需要调用sizeToScene。JavaFX将默认处理好这一切:

import javafx.application.Application;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.HBox;
import javafx.scene.control.Label;

public class FXWindowTestCase extends Application
{
    @Override
    public void start(Stage primaryStage)
    {
        primaryStage.setTitle("test case");

        HBox statusBar = new HBox(new Label("OK"));

        BorderPane root = new BorderPane();
        root.setPrefWidth(1044);
        root.setPrefHeight(728);

        root.setBottom(statusBar);

        Scene scene = new Scene(root);
        primaryStage.setScene(scene);

        primaryStage.show();
    }

    public static void main(String[] args)
    {
        launch(args);
    }
}
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章