SwingWorker没有完成

时间:2017-09-15 19:37:39

标签: java swing swingworker

我最近一直在使用相当多的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");
}

执行此操作时,它会打印“工作”,然后脚本会继续无限期地运行...

1 个答案:

答案 0 :(得分:1)

您永远不会启动SwingWorker,因此worker.get()方法在等待工作人员完成时会阻塞。

您可以通过添加:

来验证这一点
System.out.println("waiting for result");
System.out.println("result: " + worker.get());

如果您希望执行SwingWorker,则需要调用:

worker.execute() 

创建SwingWorker