【发布时间】:2012-05-06 04:39:13
【问题描述】:
我想知道是否有办法通过单击“X”让程序在关闭 JFrame 之前执行一些代码。 setDefaultCloseOperation() 方法只接受一个整数。
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
【问题讨论】:
标签: java swing user-interface jframe windowlistener
我想知道是否有办法通过单击“X”让程序在关闭 JFrame 之前执行一些代码。 setDefaultCloseOperation() 方法只接受一个整数。
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
【问题讨论】:
标签: java swing user-interface jframe windowlistener
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 就是要走的路。但是,如果您正在寻找一个地方来做一些清理和正常关闭的事情,那么您可能想要一个 shutdown hook 来代替。使用 WindowListener,代码只会被触发,正如你所说,用户“点击 X”。但是,如果用户在终端的前台启动应用程序并使用 Ctrl+C 将其终止,该怎么办?如果用户从命令行或任务管理器中终止进程怎么办?
【讨论】:
您可能有兴趣使用WindowListener。 WindowListener tutorial。
【讨论】: