JXBusyLabel中途冻结

时间:2013-08-23 07:59:32

标签: java multithreading swingworker swingx

我创建了两个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。但结果是一样的。

我在这里做错了什么?

0 个答案:

没有答案