JavaFX - 没有在mac上执行Platform.runLater

时间:2016-11-23 15:17:40

标签: java multithreading macos javafx

我有一个JavaFX应用程序在运行之前运行一个线程来加载应用程序,我在一个线程上执行此操作:

    new Thread(() -> {

            new Terminalinitializer();

    }).start();

Terminalinitializer内部我做的第一件事是显示启动画面,然后我继续加载应用程序,以显示我使用的启动画面:

  Platform.runLater(() -> {

        SplashScreenManager.instance.setString(I18NSupport.get("Terminal.ESTABLISHING_CONN"));
        SplashScreenManager.instance.setIndetermined(true);
        SplashScreenManager.instance.showSplashScreen();

 });

SplashScreenManager是一个自定义构建的类,只显示一个闪屏。

然后当我完成时,我会执行以下操作来隐藏启动画面:

Platform.runLater(() -> {
     SplashScreenManager.instance.hideSplashScreen();
 });

在Linux和Windows上,一切都运行得非常好,但在Mac上它只是挂在第二个Platform.runLater

调试显示线程正常完成,然后在不执行Platform.runLater

的情况下停止

我在发布这个问题之前搜索了一个解决方案,但没有运气。

已尝试将setImplicitExit设置为false。

0 个答案:

没有答案