我有一个程序,需要很长时间才能加载。正因为如此,我想开发一个闪屏,它可以向用户提供关于正在加载的内容的反馈。一个带有图像、标签和 JProgressBar 的简单 JFrame。
我一直在试验,我得到的最好结果是在我的main()
:
SwingUtilities.invokeAndWait(new Runnable() {
public void run() {
new SplashScreen();
}
});
SwingUtilities.invokeAndWait(new Runnable() {
public void run() {
//Code to start system
new MainFrame();
//.. etc
}
});
SplashScreen 和 MainFrame 都是扩展 JFrame 的类。我也使用物质作为图书馆。
SplashScreen 的构造函数将 JLabel 和 JProgressBar 添加到自身,打包和设置可见。JProgressBar 是setIndeterminate(true)
;
当我运行我的程序时,我的 SplashScreen 被显示,但 ProgressBar 被锁定,它不会移动,直到程序的其余部分开始它才开始按预期移动。
我在这里想念什么?我所做的所有搜索似乎都没有提到这个问题,而且大多数“自定义启动屏幕”实现的方式与我自己非常相似。