ダイアログ・ボックスの作成

ダイアログ・ボックスは、枠線とタイトルで構成されるポップアップ・ウィンドウです。通常、ダイアログ・ボックスはユーザー入力の収集に使用します。

「新規のダイアログ」ダイアログでは、DialogまたはJDialogを拡張する新規クラスを作成し、現行のプロジェクトに追加します。必要なインポート文が追加され、次の操作も実行されます。

ダイアログ・ボックスを追加した後、Javaビジュアル・エディタを使用してダイアログを直接設計できます。この方法で、新規ダイアログ・ボックスにボタンや他のコントロールを追加します。

ダイアログ・ボックスを作成する手順は、次のとおりです。

  1. プロジェクトを開くか、作成します。
  2. 「ファイル」次の選択 「新規」を選択して、「新規ギャラリ」で「新規のダイアログ」ダイアログを探します。

  3. 「カテゴリ」リストで「Client Tier」を開き、「Swing/AWT」を選択します。

  4. 「項目」リストで「ダイアログ」を選択し、「OK」をクリックして「新規のダイアログ」ダイアログを起動します。

  5. 「新規のダイアログ」ダイアログで、ダイアログ・ボックスのパッケージ名とクラス名を入力します。ファイル名は自動的に入力されます。ファイルにはクラスと同じ名前が割り当てられ、パッケージ・ディレクトリに保存されます。
  6. java.awt.Dialogjavax.swing.JDialogのどちらを開くかを選択します。
  7. 「OK」をクリックしてダイアログ・ボックスとソース・コードを作成します。

    ダイアログ・ボックスは、「移動」ウィンドウに.javaソース・ファイルとして表示されます。

JDeveloperでダイアログ・ボックスを表示するには、次のようにします。

Beanでないダイアログ・ボックスの使用

ダイアログ・ボックスを作成してUIを設計した後、そのダイアログ・ボックスをプログラム内のなんらかのUIからテストまたは使用する必要があります。その手順は次のとおりです。

  1. コード内で、ダイアログ・コンストラクタの親Frameパラメータとして機能するFrameにアクセスできる場所から、ダイアログ・クラスをインスタンス化します。この代表例は、UIの設計対象であり、ダイアログ・ボックスを表示するためのButtonまたはMenuItemを含んだFrameです。アプレットでは、getParent()をコールしてFrameを取得できます。

    モードレスなダイアログ・ボックス(この例ではdialog1)の場合、次のようにパラメータを1つ(親Frame)をとるコンストラクタの形式を使用できます。

    Dialog1 dialog1=new Dialog1(this);

    モード・ダイアログ・ボックスの場合は、次の例のように、boolean modalパラメータをtrueに設定しているコンストラクタの形式を使用する必要があります。

    Dialog1 dialog1=new Dialog1(this, true);

    この行をクラスの先頭にインスタンス変数として置く方法(ダイアログ・ボックスはFrameの作成中にインスタンス化され、再利用可能です)、およびダイアログ・ボックスを起動するボタンの actionPerformedイベント・ハンドラ内に置く方法(その場合、ボタンが押されるたびにダイアログ・ボックスの新規インスタンスが初期化されます)があります。どちらの場合も、この行によりダイアログ・ボックスが初期化されますが、まだ参照可能にはなりません。

    (ダイアログがBeanの場合は、frameをコンストラクタに対して指定するのではなく、frameプロパティをshow()のコール前に親frameに設定する必要があります。)

  2. インスタンス化されたダイアログ・ボックスを参照可能にする前に、ダイアログ・ボックスのフィールドに表示するデフォルト値を設定する必要があります。ダイアログをBeanにする予定の場合は、これらのダイアログ・ボックスのフィールドをプロパティとしてアクセス可能にしてください。そのためには、ダイアログ・クラスでgetterメソッドとsetterメソッドを定義します。
  3. 次に、イベント・ハンドラに次のようなコード行を入力して、actionPerformedイベント中にダイアログ・ボックスを参照可能にする必要があります。

    dialog1.show();

  4. ユーザーが「OK」ボタン(またはモードレス・ダイアログ・ボックスの場合は「適用」ボタン)をクリックしたときに、このダイアログ・ボックスを使用中のコードでダイアログのプロパティのgetterをコールして、ユーザーが入力した情報をダイアログから読み取り、その情報を使用してなんらかの操作を実行する必要があります。

コンテナについて