Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.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中显示一个场景_Java_User Interface_Javafx - Fatal编程技术网

如何在javaFX中显示一个场景

如何在javaFX中显示一个场景,java,user-interface,javafx,Java,User Interface,Javafx,我首先想在应用程序开始时显示一个启动场景,然后转到我的主菜单场景,但无论我做什么,都只显示其中一个场景,我尝试如下: if (change == false) { mainController.start(this.windowStage); this.windowStage.show(); change = true; } if (change == true) { mainController.startMenu(this.windowStage);

我首先想在应用程序开始时显示一个启动场景,然后转到我的主菜单场景,但无论我做什么,都只显示其中一个场景,我尝试如下:

if (change == false) {
    mainController.start(this.windowStage);
    this.windowStage.show();
    change = true;
}
if (change == true) {
    mainController.startMenu(this.windowStage);
    this.windowStage.show();
}
但只显示主菜单。我的控制器类:

public class MainController {
    public void start(Stage windowStage) {
        Scene splashScreen = SplashScreen.getScene(windowStage.getWidth(), windowStage.getHeight(), windowStage);
        windowStage.setScene(splashScreen);
    }
    public void startMenu(Stage windowStage){
        try {
            MainMenu menu = new MainMenu();
            Scene menuShow = menu.MainMenu();
            windowStage.setScene(menuShow);
        }
        catch(Exception e){
            e.printStackTrace();
        }
    }

}

代码按顺序执行,一条语句接一条语句。因此,您基本上显示启动屏幕,然后立即将其替换为“菜单”屏幕。所以你永远看不到闪屏。你到底想做什么?通常在长时间运行的初始化过程中会显示启动屏幕。除非你能向我们展示一些类似于真实用例的东西,否则没有多少人需要帮助你。与其尝试制作自己的splashscreen,不如使用预加载程序。可能是线程。睡眠(超时)