Java:如何从内部类中的方法返回外部方法

时间:2013-12-18 18:21:47

标签: java swing

这是代码

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 个答案:

答案 0 :(得分:6)

你不能这样做。

ActionListener.actionPerformed的重点是它异步触发,即不会停止程序的流动。

openFile_ActionPerformedactionPerformed完成之前完成。