如何在框架关闭后运行方法?

时间:2013-03-23 02:47:33

标签: java swing jframe

所以,我的代码现在看起来像这样:

Class2 className = new Class2(param1, param2);
className = null;
if (Class2 == null) {
    refreshState();
}

我想在refreshState对象被销毁后运行className方法。所以基本上Class2是一个在我现有的框架上运行另一个框架的类。我希望该方法仅在新帧关闭时运行。我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:3)

  

所以基本上Class2是一个在我现有的框架上运行另一个框架的类。我希望该方法仅在新帧关闭时运行。我怎么能这样做?

更好的解决方案是使用模态对话框,例如JOptionPane或模态JDialog。这将停止在主窗口中处理Swing代码,直到对话窗口被处理并且不再可见。然后在关闭对话框后立即运行refreshState:

伪代码:

main window code
show modal dialog
refresh state here. This will be called only after the dialog has returned.

答案 1 :(得分:1)

我想说将java.awt.event.WindowListener添加到框架中:

class2.getFrame().addWindowsListener(new WindowAdapter() {
    public void windowClosed(WindowEvent we) {
        // The frame is closed, let's dot something else
        refreshState();
    }
}