SwingWorker 没有执行 doInBackGround()
SwingWorker not executing doInBackGround()
我正在做的项目需要一个摇摆工人,所以我尝试使用它。我尝试如下所示使用它,但是,该程序仅产生 "Doing swing stuff" 输出。
如何让SwingWorker完成doInBackGround方法?
import javax.swing.SwingWorker;
public class WorkerTest {
public static void main(String[] args) {
Worker a = new Worker();
a.execute();
System.out.println("Doing swing stuff");
}
static class Worker extends SwingWorker<Void, Void> {
protected void done() {
System.out.println("done");
}
@Override
protected Void doInBackground(){
try {
System.out.println("working");
Thread.sleep(5000);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
}
变化:
public static void main(String[] args) {
Worker a = new Worker();
a.execute();
System.out.println("Doing swing stuff");
}
收件人:
public static void main(String[] args) {
Worker a = new Worker();
a.execute();
System.out.println("Doing swing stuff");
JOptionPane.showConfirmDialog(null, "Cancel", "Cancel this task?", JOptionPane.DEFAULT_OPTION);
}
选项窗格(打开)使事件调度线程保持活动状态。
我正在做的项目需要一个摇摆工人,所以我尝试使用它。我尝试如下所示使用它,但是,该程序仅产生 "Doing swing stuff" 输出。
如何让SwingWorker完成doInBackGround方法?
import javax.swing.SwingWorker;
public class WorkerTest {
public static void main(String[] args) {
Worker a = new Worker();
a.execute();
System.out.println("Doing swing stuff");
}
static class Worker extends SwingWorker<Void, Void> {
protected void done() {
System.out.println("done");
}
@Override
protected Void doInBackground(){
try {
System.out.println("working");
Thread.sleep(5000);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
}
变化:
public static void main(String[] args) {
Worker a = new Worker();
a.execute();
System.out.println("Doing swing stuff");
}
收件人:
public static void main(String[] args) {
Worker a = new Worker();
a.execute();
System.out.println("Doing swing stuff");
JOptionPane.showConfirmDialog(null, "Cancel", "Cancel this task?", JOptionPane.DEFAULT_OPTION);
}
选项窗格(打开)使事件调度线程保持活动状态。