import javax.swing.*;
class NoClose {
public static void main(String[] args) {
JFrame jf = new JFrame();
// 画面右上の x を押しても無条件には終わらない
jf.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
jf.setSize(500, 400);
jf.setVisible(true);
}
}
デフォルトの動作は、ユーザがウィンドウを閉じたらJFrame
を非表示にするだけです。(HIDE_ON_CLOSE)
プログラムを起動したコンソール画面を見ると、カーソルはコマンドプロンプトに戻ってはいません。
このデフォルト動作を変更するには、メソッドsetDefaultCloseOperation を呼び出します。
JFrameを表示させておくには、setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE)
を使います。
これで JFrame は java.awt.Frame と同様に動作します。
3 つ目のオプション(DISPOSE_ON_CLOSE)は、ウィンドウを閉じたら、非表示にするだけでなく、
完全にウィンドウを破棄することです。