7

ウィンドウ (Java Swing で作成) が閉じられたときに、関数を呼び出してクリーンアップを実行しようとしています。私の初期化コードでは、これを行います:

public class FormLogin extends JFrame{
    private void initComponents(){
        ...
        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowClosed(java.awt.event.WindowEvent evt){
                formLoginWindowClosed(evt);
            }
        });
        ...
    }
}

しかし、終了ボタンを押したときに「formLoginWindowClosed」関数が呼び出されることはありません。また、引数として java.awt.event.WindowAdapter を使用してリスナーを作成しようとしましたが、どちらも機能しませんでした。ウィンドウを閉じるためのリスナーを作成するにはどうすればよいですか? 前もって感謝します。

4

1 に答える 1

8

閉じるときに終了するように設定されたフレームでwindowClosedは、イベントが発生する前にシステムがすでに終了しているため、呼び出されることはありません。

windowClosing代わりに使用してみてください。

または、シャットダウンフックを使用できます

于 2012-12-05T09:57:41.753 に答える