1

フォームがSWINGあり、アプリケーションを閉じるときにデータをテキストファイルに保存したいと思います。

これはSwingによって生成されたコードであり、変更することはできません。

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
    addWindowListener(new java.awt.event.WindowAdapter()
    {
        public void windowClosed(java.awt.event.WindowEvent evt)
        {
            formWindowClosed(evt);
        }
    });

これが私のカスタム実装ですformWindowClosed。問題は、formWindowClosedを実行せずにアプリが閉じることです。

formWindowClosedアプリが閉じる前に実行されるコードを配置したいメソッドではありませんか?

formWindoClosed実装:

private void formWindowClosed(java.awt.event.WindowEvent evt)
{

    System.out.println("Message");
    brain.getBirou().getProbaRepo().WriteParticipantToTXT();
}
4

2 に答える 2

4

プロセスが終了する前にコードを実行する場合は、デフォルトの閉じる操作を設定してWindowConstants.DISPOSE_ON_CLOSE、リスナーメソッドでファイルを保存し、System.exit(0);完了したら呼び出す必要があります。
また、「Swing」はそれ自体ではコードを生成しません。たぶん、あなたは自分のためにあなたのGUIコードを手で書くべきです。その後、もちろん、何でも変更できます。
ウィンドウの終了動作を変更する可能性が必要なので、閉じるときに破棄するように設定すると役立つはずです。たぶん、IDEのどこで変更できるかを調べる必要があります。(または、テキストエディタで開くだけです...)

于 2013-02-03T11:43:34.320 に答える
0

代わりにformWindowClosingを使用できます。

Netbeans IDE GUI Builderを使用してこれを行うには、「デザイン」ビューに移動し、「ナビゲータ」ウィンドウ内の「JFrame」を右クリックします。イベントに移動し、追加するイベントを選択します。

defaultCloseOperationプロパティでフレームをDO_NOTHING_ON_CLOSEとしてマークすることを忘れないでください。

于 2020-05-10T00:37:32.027 に答える