我不知道我在做什么错,但是我看了无数的例子,而且似乎做对了。我有一个扩展JFrame的应用程序,并且在构造函数的末尾(仅出于测试目的,它不会一直存在),我有以下代码:
SwingWorker<Boolean, Integer> worker = new SwingWorker<Boolean, Integer>(){
protected Boolean doInBackground() throws Exception{
for(int i=0; i<1000000; i++) {
publish(i);
}
return true;
}
protected void process(List<Integer> chunks) {
for(int n : chunks) {
System.out.println(n);
}
}
protected void done() {
boolean status = false;
try {
status = get();
}catch(Exception e) {
}
}
};
worker.execute();
这只是一个可行的示例,最终将处理成千上万个文件,估计可能需要30分钟才能完成。因此,我希望它在后台运行。但是,应用程序在运行时不会响应。我唯一能做的就是移动窗口。我在做什么错了?