#初めに
- この記事は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);
}
}