所以,我的代码现在看起来像这样:
Class2 className = new Class2(param1, param2);
className = null;
if (Class2 == null) {
refreshState();
}
我想在refreshState
对象被销毁后运行className
方法。所以基本上Class2
是一个在我现有的框架上运行另一个框架的类。我希望该方法仅在新帧关闭时运行。我怎样才能做到这一点?
答案 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();
}
}