web-dev-qa-db-ja.com

JFrame On Close操作

「X」をクリックして、JFrameを閉じる前にプログラムにコードを実行させる方法があるかどうか疑問に思っていました。 setDefaultCloseOperation()メソッドは整数のみを取ります。

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
17
The JAVA Noob

WindowListener の使用に興味があるかもしれません。 WindowListenerチュートリアル

13
Jeffrey
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
                }
            });
20
MaynorSong

@Jeffreyには良い答えがありますが、何をしようとしているのかを考慮する必要があります。フレームを閉じたときに何かしたい場合は、WindowListenerが最適です。ただし、クリーンアップと適切なシャットダウンを行う場所を探している場合は、代わりに shutdown hook が必要になるでしょう。 WindowListenerを使用すると、コードは、ユーザーが「Xをクリックする」ことによってのみトリガーされます。しかし、ユーザーが端末のフォアグラウンドでアプリを起動し、Ctrl + Cで強制終了するとどうなりますか?ユーザーがコマンドラインまたはタスクマネージャーからプロセスを強制終了した場合はどうなりますか?

16
Ryan Stewart