我最近一直在使用相当多的SwingWorkers,并且有一些问题所以我试图创建一个SCSSE,但显然不想工作
static SwingWorker worker;
public static void main(String[] args) {
worker = new SwingWorker<Object, Object>() {
protected Object doInBackground() throws Exception {
return "Hello";
}
protected void done() {
System.out.println("I'm done!");
};
};
System.out.println("working");
try {
System.out.println("result: " + worker.get());
} catch (InterruptedException | ExecutionException e) {
e.printStackTrace();
}
System.out.println("working finished");
}
执行此操作时,它会打印“工作”,然后脚本会继续无限期地运行...
答案 0 :(得分:1)
您永远不会启动SwingWorker
,因此worker.get()
方法在等待工作人员完成时会阻塞。
您可以通过添加:
来验证这一点System.out.println("waiting for result");
System.out.println("result: " + worker.get());
如果您希望执行SwingWorker
,则需要调用:
worker.execute()
创建SwingWorker
。