我在了解Java中的并发性。我创建了一个带有GUI的程序,该GUI具有名为display
的JTextArea。
还有一个JButton
用于点击打开辅助框架以使用JProgressBar
(see 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
中的代码?