Java 在不冻结gui的情况下处理另一个线程
我不知道我做错了什么,但我已经看了无数的例子,似乎不能得到它的权利。我有一个扩展JFrame的应用程序,在构造函数的末尾(只是为了测试,它不会停留在那里),我有以下代码:Java 在不冻结gui的情况下处理另一个线程,java,Java,我不知道我做错了什么,但我已经看了无数的例子,似乎不能得到它的权利。我有一个扩展JFrame的应用程序,在构造函数的末尾(只是为了测试,它不会停留在那里),我有以下代码: SwingWorker<Boolean, Integer> worker = new SwingWorker<Boolean, Integer>(){ protected Boolean doInBackground() throws Exception{
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();
SwingWorker-worker=新的SwingWorker(){
受保护的布尔值doInBackground()引发异常{
对于(int i=0;我已尝试调用worker。在WindowListener
的windowOpened
方法中执行,而不是JFrame
的构造函数?有关更多详细信息,请参阅。我认为您需要找到一个更完整的示例来演示UI线程卡住。这似乎不足以揭示e问题。我想可能是所有的系统。out调用是挂断GUI的原因。我把它取出来,用我正在做的文件处理替换了它,并运行了一个测试样本,它工作得很好。