ユーザーがプログラムを終了するたびに、プログラムの設定を保存したいと思います。したがって、ユーザーがプログラムを終了したときに関数を呼び出す方法が必要です。それ、どうやったら出来るの?
私はJava1.5を使用しています。
次の手順を実行して、アプリケーションにシャットダウンフックを追加できます。
Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() {
public void run() {
// what you want to do
}
}));
これは基本的に、プログラム全体の周りにtry {} finally {}ブロックを設定することと同じであり、基本的に、finallyブロックの内容を含みます。
ただし、注意点に注意してください。
シャットダウンフックaddShutdownHook(java.lang.Thread)を追加することは、おそらくあなたが探しているものです。ただし、このアプローチには問題があります。
そのため、設定をすぐに保存する方がよい場合があります (待ち時間を避けるために、おそらく追加のスレッドで)。
Runtime.getRuntime()。addShutdownHook()を使用することは確かにこれを行う方法ですが、Swingアプリケーションを作成している場合は、JSR 296(Swingアプリケーションフレームワーク)を確認することを強くお勧めします。
基本に関する優れた記事は次のとおりです:http: //java.sun.com/developer/technicalArticles/javase/swingappfr/。
JSRリファレンス実装は、シャットダウンフックを追加するよりも高いレベルの抽象化で探している種類の機能を提供します。
リファレンス実装は次のとおりです: https ://appframework.dev.java.net/
スタンドアロンの GUI アプリ (つまり Swing) を作成していますか?
その場合、アプリケーションを終了する方法をユーザーにどのように提供するかを検討する必要があります。つまり、File メニューがあれば、"Exit" メニュー項目があると思います。また、ユーザーがアプリの最後のウィンドウを閉じると、アプリケーションも終了することが期待されます。どちらの場合も、ユーザー設定の保存を処理するコードを呼び出す必要があります。