1
我剛剛瞭解執行swing後臺任務,我開始嘗試使用它,但我在實現時遇到了一些麻煩。我的代碼檢索圖像並返回一個結果(一個整數),指示圖像檢索是成功結果= 0還是不成功結果= -1。這是我的問題,我正在儘快檢索結果。在done()方法中讀取結果之後,我可以在下面的代碼中看到createImage方法中的語句。我想我認爲完成的方法不會執行,直到createImage完成。這裏是我的代碼如下:實現Java Swing工作的問題
new SwingWorker<int[], Void>() {
int result = -1;
@Override
protected int[] doInBackground() throws Exception {
// TODO Auto-generated method stub
return createImage(); //returns an integer array of size one indicating the result
}
protected void done() {
try {
result = get()[0]; //this result is being read before createImage is done
//executing. Why?
thisApplet.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
tree.setEnabled(true);
if (result == -1){
tree.setSelectionPath(null);
return;
}
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
}
}.execute();
是的。一個愚蠢的編程錯誤。當我修好它的一切工作。 – Elliott 2011-02-09 13:54:27