Java SwingWorker没有完成
我最近一直在使用一些Swingworker,并且遇到了一些问题,所以我尝试创建一个SCSSE,但这显然不起作用Java SwingWorker没有完成,java,swing,swingworker,Java,Swing,Swingworker,我最近一直在使用一些Swingworker,并且遇到了一些问题,所以我尝试创建一个SCSSE,但这显然不起作用 static SwingWorker worker; public static void main(String[] args) { worker = new SwingWorker<Object, Object>() { protected Object doInBackground() throws Exception {
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");
}
静态SwingWorker-worker;
公共静态void main(字符串[]args){
工人=新的SwingWorker(){
受保护对象doInBackground()引发异常{
回复“你好”;
}
受保护的void done(){
System.out.println(“我完成了!”);
};
};
系统输出打印(“工作”);
试一试{
System.out.println(“结果:+worker.get());
}捕获(中断异常|执行异常e){
e、 printStackTrace();
}
System.out.println(“工作完成”);
}
执行此操作时,它会打印“working”,然后脚本会无限期地继续运行…您永远不会启动
SwingWorker
,因此worker.get()
方法在等待worker完成时会被阻塞
您可以通过添加以下内容来验证这一点:
System.out.println("waiting for result");
System.out.println("result: " + worker.get());
如果希望执行SwingWorker
,则需要调用:
worker.execute()
创建了
SwingWorker
哦,哇,这是个愚蠢的错误。我想如果它还没有被调用,它会被自动调用。