启动JavaFX FXML中最大化的应用程序窗口无法正常工作

时间:2017-01-12 06:37:31

标签: java javafx javafx-8 fxml

我希望我的Javafx FXML应用程序开始最大化,所以我在我的舞台上使用了方法setMaximized(true)

程序打开时最大化没有问题,但问题是在窗口出现之前应用程序启动时有一个小的黑色区域闪烁半秒。

这是我所描述的录音(gif): enter image description here

我发现问题出现在场景中,因为它试图在其prefWidth& prefHeight然后它扩展到适合舞台。 如何修复此问题并使程序按正常程序启动?

这是我的start()方法:

@Override
public void start(Stage primaryStage) throws Exception{
    Parent root = FXMLLoader.load(getClass().getResource("editor.fxml"));
    primaryStage.setTitle("Simple Text Editor");
    primaryStage.setScene((new Scene(root)));
    primaryStage.setMaximized(true);
    primaryStage.show();
}

1 个答案:

答案 0 :(得分:1)

我找到的唯一解决方法是:

@Override
public void start(Stage primaryStage) throws Exception{
    Parent root = FXMLLoader.load(getClass().getResource("editor.fxml"));
    primaryStage.setTitle("Simple Text Editor");
    primaryStage.setScene(new Scene(root));
    primaryStage.setMinWidth(450);
    primaryStage.setMinHeight(300);

    Screen screen = Screen.getPrimary();
    Rectangle2D bounds = screen.getVisualBounds();
    primaryStage.setWidth(bounds.getWidth());
    primaryStage.setHeight(bounds.getHeight());

    primaryStage.setMaximized(true);
    primaryStage.show();
}