2008年11月5日水曜日

SwingでWindowの終了を制御する

SwingでWindowの終了時に確認メッセージを表示してから終了させたい場合、以下のように実装する。

DefaultCloseOperationをDO_NOTHING_ON_CLOSEに設定すると、Windowの閉じるボタンを押下したときに何も処理を行わない。
※GUIクラスはJFrameの実装とする
JFrame gui = new GUI();
gui.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
gui.setVisible(true);
GUIクラスの初期化処理などで以下のようにWindowListenerを追加し、windowClosing(WindowEvent)メソッドを実装する。


addWindowListener(new java.awt.event.WindowAdapter() {
 public void windowClosing(WindowEvent e) {
  if (JOptionPane.showConfirmDialog(this, "Confirmation") == OptionPane.OK_OPTION) {
   dispose();
  }
 }
});

0 件のコメント: