执行SwingWorker后,事件调度线程中没有任何事情发生

时间:2014-05-02 13:53:59

标签: java multithreading

我在了解Java中的并发性。我创建了一个带有GUI的程序,该GUI具有名为display的JTextArea。

还有一个JButton用于点击打开辅助框架以使用JProgressBarsee here)。

打开新框架的按钮的ActionListener包含以下代码:

SwingWorker<String, Void> openProgressorGUI = 
        new SwingWorker<String, Void>() {

    @Override
    protected String doInBackground() throws Exception {
        ProgressorGUI bp = new ProgressorGUI();
        bp.setVisible(true);
        bp.pack();
        return null;
    }

};
openProgressorGUI.execute();

display.append("You just opened the Progress Bar window”);

单击该按钮时,辅助框架将打开并执行所需操作,但主GUI中的display无法打印&#34;您刚刚打开了“进度条”窗口&#34 ;

我的理解是SwingWorker打开一个新的后台线程,因此事件调度线程不会中断。

为什么不控制继续SwingWorker以完成ActionListener中的代码?

0 个答案:

没有答案