ダイアログ・ボックス
は、枠線とタイトルで構成されるポップアップ・ウィンドウです。通常、ダイアログ・ボックスはユーザー入力の収集に使用します。
「新規のダイアログ」ダイアログでは、Dialog
またはJDialog
を拡張する新規クラスを作成し、現行のプロジェクトに追加します。必要なインポート文が追加され、次の操作も実行されます。
jbInit()
メソッドが作成されます。jbInit()
メソッドは、いずれかのコンストラクタの使用時に起動されます。
ダイアログ・ボックスを追加した後、Javaビジュアル・エディタを使用してダイアログを直接設計できます。この方法で、新規ダイアログ・ボックスにボタンや他のコントロールを追加します。
ダイアログ・ボックスを作成する手順は、次のとおりです。
「ファイル」 「新規」を選択して、「新規ギャラリ」で「新規のダイアログ」ダイアログを探します。
「カテゴリ」リストで「Client Tier」を開き、「Swing/AWT」を選択します。
「項目」リストで「ダイアログ」を選択し、「OK」をクリックして「新規のダイアログ」ダイアログを起動します。
java.awt.Dialog
とjavax.swing.JDialog
のどちらを開くかを選択します。
ダイアログ・ボックスは、「移動」ウィンドウに.java
ソース・ファイルとして表示されます。
JDeveloperでダイアログ・ボックスを表示するには、次のようにします。
ナビゲータでファイルを右クリックして「開く」を選択し、「設計」タブをクリックして対話型のUI設計ツール(コンポーネント・パレットやプロパティ・インスペクタなど)を使用します。
ナビゲータでファイルを右クリックして「開く」を選択し、ソース・コードを直接カスタマイズする操作を開始します。
Beanでないダイアログ・ボックスの使用
ダイアログ・ボックスを作成してUIを設計した後、そのダイアログ・ボックスをプログラム内のなんらかのUIからテストまたは使用する必要があります。その手順は次のとおりです。
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に設定する必要があります。)
actionPerformed
イベント中にダイアログ・ボックスを参照可能にする必要があります。
dialog1.show();
show()
メソッド・コールの直後に実行できます。これは、show()
はモード・ダイアログ・ボックスが消えるまで値を戻さないためです。resultプロパティを使用すると、「OK」ボタンが押されたのか「取消」ボタンが押されたのかを判別できます。
show()
は即時に値を戻します。このため、ボタンを押す各操作のイベントをダイアログ・クラス自体で公開する必要があります。ダイアログ・ボックスを使用する場合は、リスナーをダイアログのイベントに登録し、コードをイベント処理メソッドに挿入し、プロパティのgetterを使用してダイアログ・ボックスから情報を取得します。
Copyright © 1997, 2007, Oracle. All rights reserved.