SwingのJTextFieldを使って、入力欄を作ってみます。
VB/C#では、メッセージボックスに相当するコンポーネントです。
前回はメッセージの表示だけでしたが、今回はユーザーに質問をして回答してもらいます。
JOptionPaneを使ってユーザーに「はい・いいえ」を確認するサンプル
ユーザーに「はい・いいえ」を聞いてみます。
せっかくなので、その他オプション(OK/キャンセル等)でも同じように聞いてみます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | import javax.swing.JOptionPane; public class JOptionPaneTest2 { public static void main(String[] args) { //確認ダイアログを4つ表示 int ret = JOptionPane.showConfirmDialog(null, "デフォルトだよ♪", "ぱたーん1", JOptionPane.DEFAULT_OPTION , JOptionPane.QUESTION_MESSAGE); print(ret); ret = JOptionPane.showConfirmDialog(null, "YES_NOオプションだよ♪", "ぱたーん2", JOptionPane.YES_NO_OPTION , JOptionPane.QUESTION_MESSAGE); print(ret); ret = JOptionPane.showConfirmDialog(null, "YES_NO_CANCELオプションだよ♪", "ぱたーん3", JOptionPane.YES_NO_CANCEL_OPTION , JOptionPane.QUESTION_MESSAGE); print(ret); ret = JOptionPane.showConfirmDialog(null, "OK_CANCELオプションだよ♪", "ぱたーん4", JOptionPane.OK_CANCEL_OPTION , JOptionPane.QUESTION_MESSAGE); print(ret); //確認ダイアログでのユーザーの入力結果を取得 } private static void print(int result) { switch(result) { case JOptionPane.CANCEL_OPTION: System.out.println("キャンセルが押されたよ♪"); break; case JOptionPane.YES_OPTION: //JOptionPane.OK_OPTIONは、YES_OPTIONと同じ System.out.println("はい/OKが押されたよ♪"); break; case JOptionPane.NO_OPTION: System.out.println("いいえが押されたよ♪"); break; case JOptionPane.CLOSED_OPTION: System.out.println("閉じるが押されたよ♪"); break; } } } |
実行結果
4回連続で、確認ダイアログが表示されます。
・1つ目(JOptionPane.DEFAULT_OPTION)
・2つ目(JOptionPane.YES_NO_OPTION)
・3つ目(JOptionPane.YES_NO_CANCEL_OPTION)
・4つ目(JOptionPane.OK_CANCEL_OPTION)
また、押された結果が標準出力されます。
1 2 3 4 | はい/OKが押されたよ♪ いいえが押されたよ♪ キャンセルが押されたよ♪ キャンセルが押されたよ♪ |
サンプルの解説
JOptionPane#showConfirmDialog(…)を使うと、ユーザーに確認するダイアログを簡単に表示することができます♪
このメソッドは用途に合わせて複数用意されていますが、今回使用したサンプルの場合、次のように指定します。
第1引数:nullまたは親画面を指定します。親画面を指定した場合、ダイアログ表示中は親画面が操作できない状態になります。
第2引数,第3引数:確認ダイアログに表示する文字列を指定します。それぞれ、ウィンドウ内の文章と、ウィンドウのタイトルになります。
第4引数:確認する方法(表示したいボタン)を指定します。
第5引数:確認ダイアログに表示したいマーク(アイコン)を指定します。