2013年10月5日土曜日

Java 子ダイアログ 閉じる

やりたいこと
こんな感じで、サブダイアログのOK , キャンセルを押したときに、サブダイアログを閉じて、
親Windowsに処理を戻すようにする。

方法
Designタブで、OKボタンをダブルクリックして、イベントハンドラを作成する。

イベントハンドラの中でdispose()を呼ぶ
    JButton okButton = new JButton("OK");
    okButton.addActionListener(new ActionListener() {
     public void actionPerformed(ActionEvent e) {
      dispose();
     }
    });
これでOK。

Java 子ダイアログ Swingデザイナで作る。 

やりたいこと
こんな感じで、メインウィンドウから子ダイアログを表示させる。

※あらかじめ、Swingデザイナをインストールしておく必要があります。入れ方はこちら

手順1 子ダイアログを作る
メインウィンドウがあるパッケージを右クリック -> New -> Otherを選択。

Newダイアログで、WindowBuilder -> Swing Designer -> JDialogを選択して、Next

子ダイアログの名前を入力してFinishボタンを押す。



手順2 子ダイアログを親Windowから起動する。
こんな感じのコードを書くと、子ダイアログを呼び出せる。
   Sub subdialog = new Sub();
   subdialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
   subdialog.setModalityType(JDialog.ModalityType.APPLICATION_MODAL); 
   subdialog.setVisible(true);
ひとまずこれで完了。
でもOKとCancelを押しても何も反応しなので、それは次回。