JavaFX-Platform.runLater未在mac上执行
我有一个JavaFX应用程序,它在启动前运行一个线程来加载应用程序,我在一个线程上这样做:JavaFX-Platform.runLater未在mac上执行,java,multithreading,macos,javafx,Java,Multithreading,Macos,Javafx,我有一个JavaFX应用程序,它在启动前运行一个线程来加载应用程序,我在一个线程上这样做: new Thread(() -> { new Terminalinitializer(); }).start(); 在Terminalinitializer中,我要做的第一件事是显示启动屏幕,然后继续加载应用程序,以显示我使用的启动屏幕: Platform.runLater(() -> { SplashScreenManage
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上,它只是挂在第二个平台上
调试显示线程正常完成,然后停止,而不执行平台。runLater
在发布这个问题之前,我一直在寻找解决方案,但运气不佳
已尝试将setImplicitExit
设置为false。当应用程序开始显示启动屏幕时(因为在用户可以与之交互之前,您必须加载一些数据),以及当您完成加载所需数据时,您需要隐藏启动屏幕?有点,,使用闪屏的实际原因是从服务器加载一些数据以本地存储,因此我确保用户有一个最新的本地存储@GoXR3PlusAre,您知道吗?SplashScreenManager.instance.showSplashScreen()
实际上做了什么?是仅JavaFX,还是混合了AWT/Swing?将新TerminaliInitializer()
包装到try/catch块中并添加异常日志记录,很可能在应用程序开始显示初始屏幕时,在任何需要的地方都没有记录某些异常(因为在用户与之交互之前,您必须加载一些数据)当你加载完所需的数据后,你想隐藏闪屏?有点,使用闪屏的实际原因是从服务器加载一些数据以本地存储,所以我确保用户有一个最新的本地存储@goxr3plus你知道吗?什么是SplashScreenManager.instance.showssplashscreen()
你真的这么做了吗?是只使用JavaFX,还是混合了AWT/Swing?将新TerminaliInitializer()
包装到try/catch块中并添加异常日志记录,很可能您有一些未记录的异常