Y.Okamoto@Psy.JWU

ダイアログボックスによる入出力

クラスの作成とパッケージ化

 

 ダイアログボックスを用いるとプログラムの実行の流れに沿って文字列の表示・入力を行うことができる。例えば、図1のプログラムの場合、

 

 

aの値、bの値の設定を求めるダイアログボックスが順に提示され(図2、図3)、

 

 

 

最後にそれらの和が表示される(図4)。

 

 

上の例におけるダイアログボックスのクラスはパッケージとして用意されている。パッケージの作成は以下のようにして行える(詳しい説明はここをクリックして表示されるページにある)。

 作成するパッケージの雛形を用意するためのプロジェクトを新規作成する(図5、図6)。

 

 

 

プロジェクトの用意ができたら、次にダイアログボックスの雛形を用意する。「File|New」メニュを選ぶ(図7)。

 

 

Object Galleryボックスが提示されたらDialogを選ぶ(図8)。

 

 

Dialogを選んでOKボタンをクリックするとDialog Wizardが提示される(図9)。

 

 

作成するクラス名を設定してOKボタンをクリックすると図10、図11のようにダイアログボックス用クラスの雛形が用意される。

 

 

 

このとき、ファイルとフォルダの構造は図12のようになっている。

 

 

用意したダイアログボックスの設計とプログラミングは実際に他のプログラムからダイアログボックスを呼び出しながら行うので、まず上で用意した雛形のまま、ダイアログボックスのチェックを行うプログラムからimportできるようにコピーする。このときプログラムのフォルダ(図13ではcheckmydialog)とパッケージのフォルダ(図13ではpkgmydialog)との関係は図13に示すように設定する。

 

 

図13のようにパッケージのフォルダをコピーしただけでは、図14のようにimport文でパッケージの使用を宣言しても図15のようにエラーが表示される。

 

 

 

 

図15に表示されているエラーは、このエラーを無視してプログラムのMakeあるいは実行を行えば消えることは、ここをクリックして表示されるページで説明したとおりである。

実際に上の手順でダイアログボックスクラスの作成に用いたプロジェクトがckMyDialogである。このプロジェクトを実行すると図16のフレームが表示される。

 

 

フレーム上の3つのボタン、OKOK(Msg)OK(Msg,Text)、はダイアログの3通りの呼び出し方に対応している(図17)。

 

 

上の3通りのダイアログボックスの提示方法に対応するshowメソッドは図18のように与えられている。

 

 

3つのshowメソッドは、jLabel1コンポーネントとjTextField1コンポーネント内の文字列の設定方法が異なっている。jLabel1コンポーネントとjTextField1コンポーネントは図19のように貼り付けられている。

 

 

2つのボタン、OKCancel、はいずれもhideメソッドによってダイアログボックスを隠すものであるが、文字列型フィールドgsへの文字列の設定が異なっている。

 

 

フィールドgsに設定された文字列はメソッドgetTextによって読み出すことができる(図21)。

 

 

なお、ダイアログボックスのオブジェクト(インスタンス)を生成するコンストラクタは、パラメタmodalの値をtrueに設定して呼び出す。この値がtrueであれば、showメソッドでダイアログボックスを表示したとき、hideメソッドでダイアログボックスを隠すまで、ダイアログボックスを呼び出したプログラムにおける実行はshowメソッドの実行箇所で止まっている。

 

 

 

上のパッケージ作成用のプロジェクトのパッケージの作成終了後のファイルを圧縮ファイルckMyDialog.ZIPとしてまとめた。ckMyDialog.ZIPここをクリックしてダウンロードできる。ダウンロードして解凍すると作成されるフォルダckMyDialogにあるプロジェクトファイルckMyDialog.jpxをダブルクリックなどによりJBuilderで開くと実行することができる。

図1から4までに示したダイアログボックスの使用例のプログラムファイルは圧縮ファイルdemoMyDialog.ZIPとしてまとめた。demoMyDialog.ZIPここをクリックしてダウンロードできる。ダウンロードして解凍すると作成されるフォルダdemoMyDialogにあるプロジェクトファイルdemoMyDialog.jpxをダブルクリックなどによりJBuilderで開くと実行することができる。

 フォルダdemoMyDialogなどにあるパッケージpkgmydialog(そこに用意されているmyDialogクラス)は、上で説明したようにフォルダpkgmydialogをコピー・貼り付け(あるいは移動)することにより他のプログラムで容易に利用することができる。

 上のサンプルプログラムを解凍後ダブルクリックにより最初に開くと「シンボルを見つけられません」などのエラーが表示されることがあるが、Makeあるいは実行してコンパイルすると、これらのパッケージ内のシンボルに関するエラーは消える。

 

Up