我已经设置了一个这样的 JFrame:
public class XFrame extends JFrame {
public XFrame() {
setSize(100, 100);
}
@Override
public void dispose() {
super.dispose();
System.out.println("Dispose get called");
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
XFrame f = new XFrame();
f.setTitle("Hello World");
//f.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
f.setDefaultCloseOperation(EXIT_ON_CLOSE);
f.setVisible(true);
}
});
}
}
我期望的是,当我按下关闭按钮 [X] 时,将调用 dispose 方法。但是,只有当 DISPOSE_ON_CLOSE 设置为 DefaultCloseOperation (???) 时才会出现这种情况。Java 在这里真的让我感到惊讶。如何实现在 DefaultCloseOperation 值(DISPOSE_ON_CLOSE 和 EXIT_ON_CLOSE)两种情况下都会调用的方法?