我在OS X Sierra下编写了一个SWT应用程序,启动需要一点时间,所以我想添加一个启动画面以清楚地表明正在发生某些事情。 Java 清单文件中的 SplashScreen-Image:
属性似乎非常适合此。 这适用于显示初始屏幕图像的程度,但问题是在应用程序主窗口最终出现后图像永远不会消失。 我试过添加
final SplashScreen splash = SplashScreen.getSplashScreen();
if (splash != null) {
splash.close();
}
在调度循环开始之前,启动图像仍然可见。 SplashScreen 类的 Oracle 演示代码和类文档都没有提供任何有用的指导(恕我直言(,说明我应该做什么。
应该如何消除或删除启动图像?我可能做错了什么?
解决方案:作者并没有真正打电话给splash.close()
。请参阅下面的评论第一个答案。
我有使用在 VM 参数中定义的初始屏幕的应用程序:
javaw -splash:splash.png ...other params here...
当第一个 JFrame 设置为可见时,初始屏幕会自动消失。
可能这不是您的确切问题的解决方案,但也许您可以采用这种方法来使其工作。
至于您的解决方案,我没有在OS X Sierra上使用初始屏幕的经验,也没有清单文件中定义的启动画面的经验,但是您确定,调用splash.close();
的这一行确实执行吗?您是否逐步调试了此代码?