所以,我的代码现在看起来像这样:
Class2 className = new Class2(param1, param2);
className = null;
if (Class2 == null) {
refreshState();
}
我希望该refreshState
方法在className
对象被销毁后运行。所以基本上Class2
是一个在我现有框架之上运行另一个框架的类。我希望该方法仅在新框架关闭时运行。我怎样才能做到这一点?
所以基本上 Class2 是一个在我现有框架之上运行另一个框架的类。我希望该方法仅在新框架关闭时运行。我怎样才能做到这一点?
更好的解决方案是使用模态对话框,例如 JOptionPane 或模态 JDialog。这将停止处理主窗口中的 Swing 代码,直到对话框窗口被处理并且不再可见。然后您的 refreshState 可以在对话框关闭后立即运行:
伪代码:
main window code
show modal dialog
refresh state here. This will be called only after the dialog has returned.
我会说在框架中添加一个 java.awt.event.WindowListener:
class2.getFrame().addWindowsListener(new WindowAdapter() {
public void windowClosed(WindowEvent we) {
// The frame is closed, let's dot something else
refreshState();
}
}