SwingWorker尚未完成

Xerus

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

当执行此命令时,它会打印“正在运行”,然后脚本将继续无限期运行...

卡米克尔

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

您可以通过添加以下内容进行验证:

System.out.println("waiting for result");
System.out.println("result: " + worker.get());

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

worker.execute() 

创建完之后SwingWorker

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章