Join 单击按钮后,如何等待SwingWorker完成后再继续?

Join 单击按钮后,如何等待SwingWorker完成后再继续?,join,swingworker,Join,Swingworker,我有以下代码: public class FileLoader extends SwingWorker(Void, Void) { @Override private Void doInBackground() { loadFiles(); } } public class LogInPage { private FileLoader fileLoader = new FileLoader(); public LogInPage()

我有以下代码:

public class FileLoader extends SwingWorker(Void, Void) {
    @Override
    private Void doInBackground() {
        loadFiles();
    }
}

public class LogInPage {

    private FileLoader fileLoader = new FileLoader();

    public LogInPage() {
        fileLoader.execute();
    }

    loginButtonActionPerformed(ActionEvent evt) {
        //wait for files to finish loading
        //while displaying a waiting cursor

        showMainForm();
    }
}
我的问题是:

单击按钮后,我希望在显示主窗体之前先加载所有文件(同时显示沙漏光标和进度条)

我以前在线程的join()上做过这项工作,但在SwingWorker上做不到

我读过关于重写done()和实现侦听器的内容,但我不能在这里应用它

有什么帮助吗


谢谢。

从你所说的和你所想的相反,我认为你实际上可以使用SwingWorker的done()方法。在execute()之前,禁用按钮,启动一个繁忙的动画,然后在done()方法中,执行继续程序所需的任何操作。这就是它的用途:-)

您还应该查看SwingWorker.publish()和process()来发送和接收进度条事件

另见: