2013-12-18 51 views
3

這裏返回出外方法是代碼的Java:如何從一個方法中的內部類

void openFile_ActionPerformed(ActionEvent e) { 
    // some code here 

    worker.setFile(file); 
    worker.start(); 

    ActionListener taskPerformer = new ActionListener() { 
    public void actionPerformed(ActionEvent evt) { 
     if (actDone) { 
      if (timer != null) 
       timer.stop(); 
       // How to return from the openFile_ActionPerformed() method after this line? 
       progressWindow.threadCompleted(worker); 

      } 
     } 
    }; 
    timer = new Timer(100 , taskPerformer); 
    timer.setRepeats(true); 
    timer.start(); 
    progressWindow.display(); 
} 

我想方法行之後返回了openFile_ActionPerformed方法

progressWindow.threadCompleted(worker); 

但是這是在一個內部類。我試圖把「迴歸」在那裏,它似乎從內部類中的方法「actionPerformed()」返回。

如何從內部類中的方法返回外部方法?謝謝

+1

在內部方法中設置一個變量並在外部檢查它。 – Trenin

+1

你不能。這些事情是異步完成的。 –

+0

@Trenin,你使用過Java嗎?首先,這裏的事情是異步的。其次,Java需要內部類引用的變量爲「final」。 –

回答

6

你不能這樣做。

ActionListener.actionPerformed整點是它異步啓動,即不停止你的程序流。

您的openFile_ActionPerformedactionPerformed完成之前完成。

相關問題