当将SplashScreen-Image与SWT一起使用时,我应该如何使Java初始屏幕消失



我在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();的这一行确实执行吗?您是否逐步调试了此代码?

最新更新