我正在尝试使用Swing Worker process()方法更新我的Swing GUI。换句话说,计算在doInBackground()方法中继续,发布其结果,然后process()方法影响GUI上的更改。
我的挑战 GUI将一直停留,直到doInBackground操作完成。没有GUI的中间更新。
此外,甚至在我看到process()方法的内容
之前,就会触发done()方法我的问题 请问,为什么会发生这种情况,我该如何解决这个问题?
class SwingWorkerThread extends SwingWorker<String, String> {
@Override
protected String doInBackground() throws Exception {
String Pub = "Default";
for (int i = 0; i < 2000; i++) {
Pub = String.valueOf(i);
publish(Pub);
Thread.sleep(200);
}
return Pub;
}
@Override
protected void process(List<String> chunks) {
for (String number : chunks) {
MainFrame.TextArea.append(number + "\n");
System.out.println(number);
}
}
@Override
protected void done() {
System.out.println("Done Here");
}
}