为Java应用程序创建初始屏幕的最佳方法?

为Java应用程序创建初始屏幕的最佳方法?,java,swing,cross-platform,splash-screen,Java,Swing,Cross Platform,Splash Screen,我有一个Java应用程序,设计用于在Windows和OSX上运行。在某些情况下,加载可能需要一段时间,因为它基本上是查看主目录中的目录(所以是两级目录)。完成后,将显示主GUI,除非出现任何错误,在这种情况下,将显示JOptionPane 我想在显示GUI或消息之前显示一个启动屏幕,但是我不确定最好的方法是什么。另外,我不知道如何创建启动屏幕-是否有人们使用的程序?在应用程序启动时,显示一个带有图像的JOptionPane,这是您的启动屏幕,同时启动一个线程为您执行加载,完成后隐藏带有启动的窗格

我有一个Java应用程序,设计用于在Windows和OSX上运行。在某些情况下,加载可能需要一段时间,因为它基本上是查看主目录中的目录(所以是两级目录)。完成后,将显示主GUI,除非出现任何错误,在这种情况下,将显示JOptionPane


我想在显示GUI或消息之前显示一个启动屏幕,但是我不确定最好的方法是什么。另外,我不知道如何创建启动屏幕-是否有人们使用的程序?

在应用程序启动时,显示一个带有图像的JOptionPane,这是您的启动屏幕,同时启动一个线程为您执行加载,完成后隐藏带有启动的窗格并显示您的主UI

如果您正在谈论Swing应用程序,然后是关于这个主题的Java教程:

对于JNLP启动的Swing应用程序,本博客介绍如何更改JNLP启动屏幕:

我找不到SWT应用程序的教程,但这里有几个示例:



如果您询问如何为启动屏幕创建图形/图像,有许多用于创建图像的工具,推荐一种可能会与堆栈溢出无关。

您可以看看这一点,或者使用Java的内置功能:您不知道如何为其创建图像和应用程序是什么意思?你的意思是你需要像photoshop这样的东西吗?@GuillaumePolet感谢你提供的答案链接。它看起来非常有用-我在搜索中没有遇到过它。@Warlock是的,我没有创建这种图形的经验,所以我不知道我是否可以使用任何特定的软件。@Warlock有什么免费的吗?谢谢你的回答。这就是我想做的,但是我对线程没有太多的经验,所以可以在单独的线程中启动启动屏幕,什么是确定何时隐藏启动屏幕的最佳方法?你需要在线程上加载以检查它何时完成,另一种方法是,因为你有一个启动图像(不是视频)不必担心UI冻结,您可以显示splash来执行加载并隐藏splash,而无需使用Threads。您是对的。我刚刚尝试过,我不需要线程,因为每件事的性质。谢谢你的帮助-这是最简单的方法谢谢你的回答。我确实看过Java教程,但它似乎有点模糊,我不确定启动屏幕何时会消失。但是这些例子应该是有帮助的。在第一个教程中,飞溅不会自动消失。当你的应用程序被商业阅读时,你需要在
SplashScreen
对象上调用
close()
。我刚刚看了完整的代码,你是对的。我对API有点误解