我必须使用SwingWorker来更新EDT,所以我写了一个这样的方法:
protected String var;
private void doSomething(){
SwingWorker<Void, String> = new SwingWorker<Void, String>(){
protected Void doInBackground(){
var = "something";
}
};
}
我如何获得上述方法的var值?
答案 0 :(得分:1)
调用publish
并传递值,该值将(最终)传递给process
返回doInBackground
方法中的值,该方法可以在工作人员完成后通过调用get
获得(您可能使用PropertyChangeListener
来确定状态何时更改)
设计自己的界面以将信息传递给工作人员,但我仍然使用publish
/ process
功能将其重新带回EDT。
有关详细信息,请查看Worker Threads and SwingWorker