我创建了两个JFrame
1.飞溅屏幕
2.主窗口
我需要显示第一个启动画面,然后在显示启动画面时,将创建主Windows对象。 (创建该对象需要几秒钟,因为它是一个复杂的窗口。)
我在启动画面上使用了JXBusyLabel,默认设置为忙。
这是我的主要方法。
public static void main(String[] args) {
SwingWorker sw = new SwingWorker() {
@Override
protected Boolean doInBackground() throws Exception {
SplashScreen sp = new SplashScreen();
sp.setVisible(true);
return true;
}
};
sw.execute();
Thread t1 = new Thread() {
public void run() {
try {
/* some stuff here */
MainFrame mf = new MainFrame(); // (A)
mf.setVisible(true);
} catch Exception ex) {
/* Logger */
}
}
};
t1.start();
}
当我运行它时,会出现启动画面,忙标签可以正常工作一段时间。然后它会冻结,因为MainFrame被创建(在行(A)中)。
我尝试使用普通线程来显示SplashScreen。但结果是一样的。
我在这里做错了什么?