LoginSignup
0
1

More than 5 years have passed since last update.

JFrameの setDefaultCloseOperation() の使い方

Posted at

初めに

  • この記事はQiita初心者が書いたものです。
  • もしかしたら上級プログラマーの中では一般的かもしれません...
  • 若干、備忘録感があります

setDefaultCloseOperation(int operation)

この関数は、ウィンドウをどう閉じるかを設定できます。(ウィンドウの×のボタンを押したとき)
引数にJFrameの定数をいれてあげることで処理のパターンを変えることができます

  • DO_NOTHING_ON_CLOSE
    • 何も行いません、終了処理は JFrame に登録している WindowListener クラスの WindowClosing() で行います。
  • HIDE_ON_CLOSE
    • 上の WindowClosing() を実行した後にフレームを隠します。
  • DISPOSE_ON_CLOSE
    • 上の WindowClosing() を実行した後にフレームを隠し、破棄します。
  • EXIT_ON_CLOSE
    • javaの標準ライブラリの System.exit() を使って終了させます。

サンプルプログラム

このプログラムでは DO_NOTHING_ON_CLOSE を引数としてとり、自身で終了処理を記述しています。
この方法を使うと、ゲームデータのセーブの処理などが記述できます。← それだったら DISPOSE_ON_CLOSE 使えよ

WindowTest.java
import javax.swing.JFrame;
import java.awt.*;
import java.awt.event.*;

public class WindowTest extends JFrame{

    public WindowTest(String title,int width,int height){
        super(title);
        setSize(width,height);
        setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
        addWindowListener(new MyWindowListener());
        setResizable(false);
        requestFocus();
        setVisible(true);
    }

    public static void main(String args[]){
        new WindowTest("テスト",200,300);
    }


}

class MyWindowListener extends WindowAdapter {
    public void windowClosing(WindowEvent e) {
        System.out.println("終了処理を実行します");
        System.exit(0);
    }
}
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1