【发布时间】:2018-01-22 10:56:57
【问题描述】:
我从教程中复制了以下代码并将其粘贴到我的编辑器 (Netbeans 8.1) 中。我阅读了SwingWorker documentation 并且从我从这篇文档和其他文档中了解到的是 execute() 方法应该是“启动线程”(或将其放入工作线程中)。 p>
public class Sandbox {
public static void main(String[] args)
{
SwingWorker<Void, Void> w = new SwingWorker<Void, Void>() {
@Override
protected Void doInBackground() throws Exception {
for(int i=0; i<=10; i++){
Thread.sleep(1000);
System.out.println(i);
}
return null;
}
};
w.execute();
}
}
这里有什么问题?如果我使用 SwingUtilities.invokeLater(w) 它可以工作,但它只显示 0,当我删除 Thread.sleep(1000) (据我所知,这应该是暂停的事情),它按预期工作。
【问题讨论】:
标签: java multithreading swing swingworker