appendix> Component> JOptionPane TOPUPPREVNEXT

javax.swing.JOptionPane

【主な機能】

短い文字列や、YES/NO、OK/Cancel などの判定をするためのダイアログを表示します。 ダイアログはモーダルです。 つまり、ダイアログが閉じられるまでプログラムは先に進みません。

ダイアログのレイアウトは次のようになっています。

layout.gif

いろいろなクラス・メソッドが用意されていますが、 パラメタの種類や役割は共通です。

パラメタ意味
Compnent parent このダイアログの親フレームを指定します。 ダイアログは親フレームの中央に表示されます。 例1参照
null を指定すると、 ダイアログは画面の中央に表示されます。 ウィンドウをを表示しないプログラムでも、 null を指定してダイアログを表示できますが、 AWTのスレッドが動き始めますので、 プログラムの終了時に System.exit(0) でこのスレッドを止める必要があります。 例2参照
Object message メッセージ欄に表示するメッセージ。 通常は文字列を指定します。 コンポーネントを指定するとそのコンポーネントが表示されます。 それ以外のオブジェクトは、toString() で文字列に変換され、 JLabel にラップされて表示されます。 配列であれば要素が順に並べられます。
int messageType アイコンを指定する次の定数。 例2参照
  • JOptionPane.ERROR_MESSAGE
  • JOptionPane.INFORMATION_MESSAGE
  • JOptionPane.WARNING_MESSAGE
  • JOptionPane.QUESTION_MESSAGE
  • JOptionPane.PLAIN_MESSAGE
int optionType オプションボタンの種類を指定します。 例3参照
  • JOptionPane.DEFAULT_OPTION
  • JOptionPane.YES_NO_OPTION
  • JOptionPane.YES_NO_CANCEL_OPTION
  • JOptionPane.OK_CANCEL_OPTION
options オプションボタン欄に表示するモノ。通常は String の配列を指定します。 指定した String がボタンに表示されます。
icon アイコン欄に表示するアイコンを指定できます。
title ダイアログのタイトル・バーの左端に表示される文字列を指定できます。
initialValue デフォルトの選択を指定できます。

【主な定数】

定数意味
static int CANCEL_OPTION 「取り消し」を選択した場合に返される値
static int CLOSED_OPTION ダイアログをクローズした場合に返される値
static int NO_OPTION 「いいえ」を選択した場合に返される値
static int OK_OPTION 「了解」を選択した場合に返される値
static int YES_OPTION 「はい」を選択した場合に返される値

定数を確認するプログラム JOPDialog1.java

【よく使われるメソッド】

メソッド機能
static int showConfirmDialog (
Component parent ,
Object message )
message を表示し、 「はい」、「いいえ」を選択するダイアログを表示します。 ダイアログのタイトルは、「オプションの選択」になります。 例1参照
static int showConfirmDialog (
Component parent ,
Object message ,
String title ,
int optionType ,
int messageType )
例2参照。 messageType を指定した例。
例3参照。 optionType を指定した例。
static int showInternalConfirmDialog (
Component parent ,
Object message )
例4参照
static int showInternalConfirmDialog (
Component parent ,
Object message ,
String title ,
int optionType ,
int messageType )
 
static void showMessageDialog (
Component parent ,
Object message )
例5参照
static int showMessageConfirmDialog (
Component parent ,
Object message ,
String title ,
int messageType )
 
static int showMessageConfirmDialog (
Component parent ,
Object message ,
String title ,
int messageType ,
Icon icon )
 
static String showInputDialog (
Component parent ,
Object message )
入力欄にテキスト・フィールドが表示され、入力した文字列を取得できるようになります。 message はメッセージ欄に表示されます。
タイトルは 「入力」と表示されます。「了解」ボタンをクリックするか、 テキスト・フィールドに Enter キーを入力すると、文字列が返されます。 「取り消し」ボタンをクリックするか、ダイアログを閉じた場合は、null が返されます。 例6参照
static String showInputDialog (
Object message )
ダイアログは、画面の中央に表示されます。
ウィンドウを表示しないプログラムでも使用できますが、 AWTのスレッドが起動しますので、 プログラムの実行終了時に System.exit(0) を呼び出すか、 プログラムを CTRL+C で強制終了させる必要があります。
static String showInputDialog (
Component parent ,
Object message ,
String title ,
int messageType )
 
static Object showInputDialog (
Component parent ,
Object message ) String title ,
int messageType ,
Icon icon ,
Object[ ] selectionValues ,
Object initialSelectionValue )
 
static int showOptionDialog (
Component parent ,
Object message ) String title ,
int optionType ,
int messageType ,
Icon icon ,
Object[ ] options ,
Object initialValue )
汎用のダイアログです。 例8参照

【例1】

showConfirmDialog の例

プログラム JOPshowConfirmDialog1.java

実行結果

JOPshowConfirmDialog1.jpg

「はい」、「いいえ」、「取り消し」をクリックすると、 それぞれ定数 JOptionPane.YES_OPTION、JOptionPane.NO_OPTION、JOptionPane.CANCEL_OPTIONが返されます。
ボタンを押さずにダイアログを閉じると 定数 JOptionPane.CLOSED_OPTION が返されます。

【例2】

showConfirmDialogmessageType (5番目のパラメタ)を指定する例。 parentnull を指定した例。

プログラム JOPshowConfirmDialog2.java

実行結果

JOPshowConfirmDialog2-1.jpg 

JOPshowConfirmDialog2-2.jpg 

JOPshowConfirmDialog2-3.jpg 

JOPshowConfirmDialog2-4.jpg 

JOPshowConfirmDialog2-5.jpg 

【例3】

showConfirmDialogoptionType (4番目のパラメタ)を指定する例。

プログラム JOPshowConfirmDialog3.java

実行結果

JOPshowConfirmDialog3-1.jpg 

JOPshowConfirmDialog3-2.jpg 

マニュアルにはありませんが、 DEFAULT_OPTION を指定してみました。

JOPshowConfirmDialog3-3.jpg 

【例4】

showInternalConfirmDialog の例

プログラム JOPshowInternalConfirmDialog1.java

親フレーム(第1パラメタ)に、一番外側のフレームを直接指定できない点に注意しましょう。

実行結果

JOPshowInternalConfirm1-1.jpg

showConfirmDialog との違いは、 ダイアログを親フレームの外に動かすと判ります。
左が showInternalConfirmDialog、右が showConfirmDialog

JOPshowInternalConfirm1-2.jpg     JOPshowInternalConfirm1-3.gif

【例5】

showMessageDialog の例。

プログラム JOPshowMessageDialog1.java

実行結果

JOPshowMessageDialog1-1.jpg 

【例6】

showInputDialog の例。

プログラム JOPshowInputDialog1.java

実行結果

JOPshowInputDialog1-1.jpg 

【例7】

ウィンドウを開かない場合の例。

プログラム JOPshowInputDialog2.java

Ctrl + C で強制終了させてください。

【例8】

showOptionDialog の例。

プログラム JOPshowOptionDialog1.java

実行結果

JOPshowOptionDialog1-1.jpg 

アイコンが標準のものでよければ、 null を指定します。 messageType にしたがって標準のアイコンが表示されます。
左が JOptionPane.QUESTION_MESSAGE、右が JOptionPane.INFORMATION_MESSAGE

JOPshowOptionDialog1-2.jpg     JOPshowOptionDialog1-3.jpg

initialValue でデフォルトのボタンが選択されていますから、 Enter キーを使ってボタンを押すことができます。 選択を変更するには、Tab キーを使います。 Shift + Tab で逆順にまわります。


更新日:2004-10-29