- 11.1. javax.swing.JDialog
- 11.2. javax.swing.JOptionPane
- 11.3. javax.swing.SwingConstants
11.2. javax.swing.JOptionPane
「JOptionPane」は数種類のモーダル・ダイアログの雛型を提供するクラスです。正確にはダイアログの中身のパネルを提供するクラスですが、「showConfirmDialog」等によって、簡単にダイアログを表示させる事ができます。例えば以下はユーザの確認をとるモーダルダイアログです。
このダイアログを表示するには以下のようにします。
JOptionPane.showConfirmDialog(frame,"OK?","option pane", JOptionPane.YES_NO_CANCEL_OPTION);
第1引数は親フレーム(親ダイアログ)、第2引数はメッセージ、第3引数はタイトル、第4引数が確認ボタンのタイプを示します。「JOptionPane.YES_NO_CANCEL_OPTION」か「JOptionPane.YES_NO_OPTION」のいずれかを指定します。またこのメソッドは、ユーザの選択に応じて、「JOptionPane.YES_OPTION」「JOptionPane.NO_OPTION」「JOptionPane.CANCEL_OPTION」のいずれかの値を返します。
(実習課題2)
実習課題1のプログラムを改良しなさい。
- 追加メニューを押したときに表示されるダイアログを「JOptionPane」で作成する事。
- 入力された追加データが空白である場合、エラーダイアログを表示する事。
- (ヒント)「JOptionPane」の「showInputDialog」と「showMessageDialog」メソッドを使用する。
(実習課題3)
実習課題2のプログラムを改良しなさい。
- 「削除」メニューを追加し、そのメニューを選択すると、削除するアイテムを選択するダイアログを表示する。そのダイアログは「JOptionPane」で作成する事。
- (ヒント)「JOptionPane」の「showInputDialog」メソッドで引数が7つあるものを使用する。
11.3. javax.swing.SwingConstants
ダイアログとは関係がありませんが、これまでコンポーネントの文字配置等で利用してきた「SwingConstants」について説明します。「SwingConstants」はSwingコンポーネントでよく使用される定数を集めた「インタフェース」です。
インタフェースがメンバ変数を持つのかという疑問が出てきますが、「インタフェース定数」に限り、持つことができます。(正確にはインタフェースで定義されたメンバ変数は自動的に「static」で「final」な変数、つまりインタフェース定数となります。)
またほとんどのコンポーネントが「SwingConstants」インタフェースを実装しています。これまで
JLabel label=new JLabel("label",SwingConstants.LEFT);
と書いてきましたが、「JLabel」は「SwingConstants」インタフェースを実装しているので、
JLabel label=new JLabel("label",JLabel.LEFT);
と書いても同じ事になります。解りやすさを考えると、下のほうが良いでしょうか。