この記事では、Javaでウィンドウを閉じる方法を紹介します。ウィンドウを閉じるのはSwingのJFrameを使う方がずっと簡単ですが、AWTのFrameを使っても可能です。
javax.swing.JFrameを使う
-
JFrameのインスタンスを取得するか、新しいインスタンスを作成します。
-
デフォルトのクローズ操作を設定する。デフォルトのクローズ操作は、JFrameクラス内のsetDefaultCloseOperationメソッドを使って設定します。このメソッドは、クローズボタンがクリックされたときの動作を決定し、次のパラメータを受け取ります:
- WindowConstants.EXIT_ON_CLOSE - フレームを閉じ、プログラムの実行を終了します。
- WindowConstants.DISPOSE_ON_CLOSE - フレームを閉じ、必ずしもプログラムの実行を終了しません。
- WindowConstants.HIDE_ON_CLOSE - visibilityプロパティをfalseに設定することでフレームを閉じたように見せます。HIDE_ON_CLOSEとDISPOSE_ON_CLOSEの違いは、後者がフレームとそのコンポーネントによって使用されるすべてのリソースを解放することです。
-
WindowConstants.DO_NOTHING_ON_CLOSE - 閉じるボタンが押されたときに何もしません。例えば、ウィンドウを閉じる前に確認ダイアログを表示したい場合に便利です。フレームにWindowListenerを追加し、windowClosingメソッドをオーバーライドすることで実現できます。カスタムクローズ操作の例frame.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); frame.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { // プログラムを終了する前に確認を求めます。showConfirmDialog( frame, "Are you sure you want to close the application?", "Close Confirmation", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE); if (option == JOptionPane.YES_OPTION) { System.exit(0); } });
java.awt.Frameを使う
-
Frameのインスタンスを取得するか、新規作成します。
-
ウィンドウ・リスナーを追加する。インスタンスのaddWindowListenerメソッドを呼び出す。必須引数はWindowListener。WindowListenerインターフェイスのすべてのメソッドを実装するか、WindowAdapterクラスから必要なメソッドだけをオーバーライドします。
-
ウィンドウを閉じるイベントを処理します。WindowListenerインターフェイスからwindowClosingメソッドを実装するか、WindowAdapterクラスからオーバーライドします。ウィンドウを閉じる方法は2通りあります:
- 閉じるボタンがクリックされた後、ウィンドウを破棄する:
- windowClosingメソッド内でdisposeメソッドを呼び出す。
frame.addWindowListener(新しいWindowAdapter() { @Override public void windowClosing(WindowEvent e) { // 閉じるボタンがクリックされた後、ウィンドウを破棄します; - 閉じるボタンがクリックされたら、プログラムを終了します:
- windowClosingメソッド内でSystem.exitメソッドを呼び出します。
frame.addWindowListener(新しいWindowAdapter() { @Override public void windowClosing(WindowEvent e) { // 閉じるボタンがクリックされたら、プログラムを終了する。 System.exit(0); } });
- 閉じるボタンがクリックされた後、ウィンドウを破棄する:
コメント
最新を表示する
NG表示方式
NGID一覧