我想知道是否有办法通过单击“X”让程序在关闭 JFrame 之前执行一些代码。该setDefaultCloseOperation()
方法只需要一个整数。
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
我想知道是否有办法通过单击“X”让程序在关闭 JFrame 之前执行一些代码。该setDefaultCloseOperation()
方法只需要一个整数。
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
int i=JOptionPane.showConfirmDialog(null, "Seguro que quiere salir?");
if(i==0)
System.exit(0);//cierra aplicacion
}
});
@Jeffrey 有一个很好的答案,但你应该考虑你想要做什么。如果您真的想在关闭框架时做某事,那么 WindowListener 就是要走的路。但是,如果您正在寻找一个地方来做一些清理和优雅的关闭工作,那么您可能需要一个关闭挂钩。使用 WindowListener,代码只会被触发,正如你所说,用户“点击 X”。但是,如果用户在终端的前台启动应用程序并使用 Ctrl+C 将其终止,该怎么办?如果用户从命令行或任务管理器中终止进程怎么办?
您可能有兴趣使用WindowListener
. WindowListener
教程。_