获取doInBackground()SwingWorker上的变量值

时间:2015-06-05 03:10:01

标签: java swing swingworker local-variables

我必须使用SwingWorker来更新EDT,所以我写了一个这样的方法:

protected String var;
private void doSomething(){
    SwingWorker<Void, String> = new SwingWorker<Void, String>(){
        protected Void doInBackground(){
        var = "something";
        }
    };
}

我如何获得上述方法的var值?

1 个答案:

答案 0 :(得分:1)

你可以......

调用publish并传递值,该值将(最终)传递给process

你可以......

返回doInBackground方法中的值,该方法可以在工作人员完成后通过调用get获得(您可能使用PropertyChangeListener来确定状态何时更改)

你可以......

设计自己的界面以将信息传递给工作人员,但我仍然使用publish / process功能将其重新带回EDT。

有关详细信息,请查看Worker Threads and SwingWorker