WindowListenerは、ウィンドウに関するイベントを受け取るインタフェース・・・。
WindowListener (Java Platform SE 6)
Frameの項ではウィンドウを閉じることができなかったが、これの派生クラスを作ってFrameオブジェクトに登録することで、閉じてアプリケーションを終了するなどの処理が可能となる・・・。
今回は、Frameを継承した派生クラスMainFrameを定義する・・・。
コンストラクタでサイズを(640, 480)としているだけ・・・。
MainFrameのイベントを受け取るMainFrameWindowListenerを定義・・・。
windowClosingはウィンドウが閉じられている時・・・。
eにはイベント情報が渡される・・・。getWindowでイベント元のウィンドウを取得し、disposeでウィンドウリソースを破棄する・・・。
これをしないとウィンドウリソースが破棄されないので注意・・・。
windowClosedはウィンドウが閉じられた時・・・。
ウィンドウが閉じられたら、System.exit(0)でアプリケーションを終了する・・・。
それ以外のメソッドも一応定義だけは書いておかないといけない・・・。
MainClassでmainFrameの表示まで行ったら、
MainFrameWindowListenerオブジェクトインスタンスlistenerをaddWindowListenerでmainFrameにセットする・・・。
これでウィンドウのイベントを処理できる・・・。
実行するとウィンドウが表示される・・・。
赤い停止ボタンが有効ということは、アプリケーションが動作中であることを示している・・・。
閉じるボタンを押すと、
ウィンドウが閉じて、停止ボタンがグレーアウト、下に"<終了>"と出ているのでアプリケーションが終了したことがわかる・・・。
Sample/MainClass.java at master · bg1bgst333/Sample · GitHub
Sample/MainFrame.java at master · bg1bgst333/Sample · GitHub
Sample/MainFrameWindowListener.java at master · bg1bgst333/Sample · GitHub