JFrame On Close Operation

我想知道是否有一种方法可以通过单击“X”让程序在关闭JFrame之前执行一些代码。该方法仅采用一个整数。setDefaultCloseOperation()

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

答案 1
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
                }
            });

答案 2

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


推荐