我无法真正获得使用swingworker的优势,而不仅仅是将繁重的任务放在(简单的)后台线程中。
这只是一个代码片段,但显示了计算整数并将值放在JLabel中的任务。 (这是在ActionPerformed中)
Thread t = new Thread() {
public void run() {
for (int i = 0; i < 2000000; i++) {
counter++;
label.setText(Integer.toString(counter));
}
}
};
t.start();
我被告知要使用抽象的SwingWorker类并覆盖方法,例如 doInBackground ,进程和已完成,而不是这个简单的代码段。
只需使用线程更新标签时效果非常好。为什么要创建一个扩展swingworker并实现抽象方法的新类? 我现在只能把Swing-worker视为线程安全,那是答案吗?