有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java 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) 个答案

  1. # 1 楼答案

    从不启动SwingWorker,因此worker.get()方法在等待工作进程完成时会被阻塞

    您可以通过添加以下内容来验证这一点:

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

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

    worker.execute() 
    

    在创建SwingWorker之后