Loading [MathJax]/extensions/tex2jax.js

2013年10月5日土曜日

Java 子ダイアログ 閉じる

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

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

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

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

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

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

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

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

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



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