18

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

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
4

3 に答える 3

22
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
                }
            });
于 2013-11-02T06:25:15.243 に答える
16

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

于 2012-05-06T04:48:36.137 に答える
13

を使用することに興味があるかもしれませんWindowListenerWindowListenerチュートリアル。_

于 2012-05-06T04:40:31.627 に答える