Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
启动JavaFX FXML中最大化的应用程序窗口无法正常工作_Java_Javafx_Javafx 8_Fxml - Fatal编程技术网

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

启动JavaFX FXML中最大化的应用程序窗口无法正常工作,java,javafx,javafx-8,fxml,Java,Javafx,Javafx 8,Fxml,我希望我的Javafx FXML应用程序开始最大化,因此在我的阶段中使用了方法setMaximized(true) 程序以最大化方式打开没有问题,但问题是在窗口出现之前,应用程序启动时有一个小的黑色区域会闪烁半秒钟 下面是我描述的一段录音(gif): 我发现问题出在场景中,因为它试图在prefWidth和prefHeight中打开,然后它会放大以适应舞台。 如何修复此问题并使程序像正常程序一样启动 下面是我的start()方法: 我发现的唯一解决办法是: @Override public vo

我希望我的Javafx FXML应用程序开始最大化,因此在我的阶段中使用了方法
setMaximized(true)

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

下面是我描述的一段录音(gif):

我发现问题出在场景中,因为它试图在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.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();
}

如果构建一个发行版(.exe./.jar)并运行它,会发生什么?如果故障仍然存在,请尝试在新线程(例如Platform.runLater())中调用“primaryStage.show()”。是的,运行jar时也会发生同样的情况。在“Platform.runLater()”中调用“primaryStage.show()”也没有改变任何事情,而不是白色和黑色的矩形,它显示了一个突然最大化的小窗口。
@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();
}