whichのブログ ~プログラミング体験記~ -2ページ目

whichのブログ ~プログラミング体験記~

主にJava,vVsual C#,Andoroid,SQLについて
覚え基本た文法やプログラミング技法、各クラスの利用法を
忘れないように形にしたものです

初心者だとかプロだとか特に意識せず利用してもらえるとうれしいです。

■ダイアログについて
 ダイアログという部品はJFrameとあまり見た目は変わりません。
  見た目はJFrameの大きさが標準的(このブログで使用しているサンプルプログラムと同じ300x200ぐらいのサイズ)であることが前提でこの半分ぐらいのサイズで表示される。

前回紹介したメニューバー同様レイアウトに依存しないため以下の方法で使用されることが多いです。
・メッセージ表示(警告や確認メッセージが表示されるだけ)
・YES/NOオプションダイアログ
・メッセージ表示(OKボタンなどのボタンがある)
・ファイルI/O
・オリジナルダイアログ

ちなみに上記のダイアログの使用方法はJavaではすべて実装可能ですがオリジナルダイアログ以外はメソッドを呼び出すだけで実現可能です。
Java APIでJOptionPaneクラスとJFileChooserクラスとJDialogクラスが用意されており、用途が限られているせいもあって前者2クラスをうまく組み合わせて使用することが多いです。

■JOptionPane
このクラスで使用するダイアログの機能は「文字列入力できる」、「メッセージを表示する」、「ボタンで確認要求する」の3つです。
これから紹介するメソッドやフィールド変数(このクラスのフィールド変数は全て定数)は「static」修飾なためJOptionPaneクラスはインスタンス化が必要ないためコンストラクタは省略しました。

JavaAPIで用意されているメソッドはかなりの量になるのですが、実は使用するメッソッドは以下のメッソッドとそれらのオーバーロード版だけ
      ・showConfirmDialog          ・showInputDialog
      ・showMessageDialog         ・showOptionDialog
ちなみに引数ですが、4つのメソッドすべてが以下の引数です。
第1引数:Component parentComponent
呼び出しもとの親フレームオブジェクトつまりJFrameオブジェクトを指定する。
よほどのことがない限り「this」でOKです。
第2引数:Object message
表示する内容(メッセージ)
基本的にはString型でOKだが、文字色などの文字書式を指定したいならJLabelでも可能
第3引数:String title
ダイアログのタイトルバーに表示するタイトル文字列を指定する。
第4引数:int optionType
表示するボタンのパターンを指定する。使用パターンは以下の表に従う
フィールド名オプション内容
YES_NO_OPTIONYES/NOボタンが表示される
YES_NO_CANCEL_OPTIONYES/NOボタンとキャンセルボタンを表示する
OK_CANCEL_OPTIONOKボタンとキャンセルボタンを表示する
第5引数:int messageType
表示するダイアログのアイコン(警告なら赤丸に×マークのような感じ)の種類を設定
種類は以下のとおり
フィールド名ダイアログの種類
ERROR_MESSEAGEエラーメッセージ
INFORMATION_MESSAGE情報メッセージ
WARNING_MESSAGE警告メッセージ
QUESTION_MESSAGE質問メッセージ
PLAIN_MESSAGEアイコン非表示
第6引数:ImageIcon icon
ダイアログに表示するアイコンにオリジナルの画像を使用する場合に指定する。
ImageIconクラスに画像ファイルの相対パスを指定しておく
第7引数:String [ ] selectionValues
この引数はshowInputDialogメソッドとshowOptionDialogだけで指定する引数です。
表示する選択ボタンを配列長の数だけ設定して各要素の文字列をボタンに表示する
第8引数:String initialValue
この引数はshowInputDialogメソッドとshowOptionDialogだけで指定する引数です。
第7引数で指定した選択ボタンでデフォルトで選択する項目を指定する。

最後に戻り値ですが、
・showConfirmDialog   :YESボタン又はOKボタン:0、NOボタン:1、キャンセルボタン:2が返されるので「int」
・showInputDialog    :String文字列(第7引数と第8引数がある場合はshowOptionDialogと同じ)
・showMessageDialog  :なし        
・showOptionDialog   :右上に表示される「×」ボタンで「-1」が選択したボタンの要素番号が返されるので「int」

showConfimDialogメソッドの戻り値識別用フィールド定数として「YES_OPTION」、「NO_OPTION」、「CANCEL_OPTION」、「OK_OPTION」が用意されておりそれぞれ対応しているためIF文で使い勝手がいい。

■まとめ
本当ならダイアログは1回で終わらせようと考えていたのですが、JOptonPaneクラスの内容が思っていた以上に多くなったため、
ここで40回目の内容は終了して今回入りきらなかった。「JFileChooserクラス」と「JDialogクラス」と「サンプルプログラム」は次回に回します。