我有一个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。