关闭操作的JFrame

时间:2012-05-06 04:39:13

标签: java swing user-interface jframe windowlistener

我想知道是否有办法,通过点击“X”,让程序在关闭JFrame之前执行一些代码。 setDefaultCloseOperation()方法只需一个整数。

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

3 个答案:

答案 0 :(得分:20)

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
                }
            });

答案 1 :(得分:16)

@Jeffrey有一个很好的答案,但你应该考虑你要做的事情。如果你真的想在关闭框架时做一些事情,那么WindowListener就是你要走的路。但是,如果您正在寻找一个清理和优雅关闭的地方,那么您可能需要shutdown hook。使用WindowListener,只有用户“点击X”才能触发代码。但是,如果用户在终端的前台启动应用程序并使用Ctrl + C将其杀死,该怎么办?如果用户从命令行或任务管理器中终止进程该怎么办?

答案 2 :(得分:13)

您可能对使用WindowListener感兴趣。 WindowListener tutorial