Swing 中提供了 JOptionPane 類來實作類別似 Windows 平台下的 MessageBox 的功能,利用 JOptionPane 類中的各個 static 方法來產生各種標準的對話方塊,實現顯示出資訊、提出問題、警告、使用者輸入參數等功能。
這些對話方塊都是模式對 話框:
ConfirmDialog --- 確認對話方塊,提出問題,然後由使用者自己來確認 ( 按 "Yes" 或 "No" 按鈕 )
InputDialog --- 提示輸入文本
MessageDialog --- 顯示資訊
OptionDialog -- 組合其它三個對話方塊類型。
這四個對話方塊可以採用 showXXXDialog() 來顯示,如 showConfirmDialog() 顯示確認對話方塊、showInputDialog() 顯示輸入文本對話方塊、 showMessageDialog() 顯示資訊對話方塊、showOptionDialog() 顯示選擇性的對話方塊。它們所使用的參數說明如下:
① ParentComponent :指示對話方塊的父視窗對象,一般為當前視窗。也可以為 null 即採用預設的Frame 作為父視窗,此時對話方塊將設定在螢幕的正中。
② message :指示要在對話方塊內顯示的描述性的文字
③ String title :標題條文字串。
④ Component :在對話方塊內要顯示的組件 ( 如按鈕 )
⑤ Icon :在對話方塊內要顯示的表徵圖
⑥ messageType :一般可以為如下的值 ERROR_MESSAGE 、INFORMATION_MESSAGE 、 WARNING_MESSAGE 、 QUESTION_MESSAGE、 PLAIN_MESSAGE 、
⑦ optionType :它決定在對話方塊的底部所要顯示的按鈕選項。一般可以為 DEFAULT_OPTION 、YES_NO_OPTION 、 YES_NO_CANCEL_OPTION 、 OK_CANCEL_OPTION 。
使用執行個體:
(1) 顯示 MessageDialog
JOptionPane.showMessageDialog(null, " 在對話方塊內顯示的描述性的文字 ", " 標題條文字串", JOptionPane.ERROR_MESSAGE);
(2) 顯示 ConfirmDialog
Java代碼 [java] view plain copy JOptionPane.showConfirmDialog(null, "choose one", "choose one", JOptionPane.YES_NO_OPTION); JOptionPane.showConfirmDialog(null, "choose one", "choose one", JOptionPane.YES_NO_OPTION);
(3) 顯示 OptionDialog :該種對話方塊可以由使用者自己來設定各個按鈕的個數並返回使用者點擊各個按鈕的序號( 從 0 開始計數 )
Java代碼 [java] view plain copy Object[] options = {" 確定 "," 取消 "," 協助 "}; int response=JOptionPane.showOptionDialog(this, " 這是個選項對話方塊,使用者可以選擇自己的按鈕的個數 ", " 選項對話方塊標題 ",JOptionPane.YES_OPTION, JOptionPane.QUESTION_MESSAGE, null, options, options[0]); if(response==0) { this.setTitle(" 您按下了第 OK 按鈕 "); } else if(response==1) { this.setTitle(" 您按下了第 Cancel 按鈕 "); } else if(response==2) { this.setTitle(" 您按下了第 Help 按鈕 "); } Object[] options = {" 確定 "," 取消 "," 協助 "}; int response=JOptionPane.showOptionDialog(this, " 這是個選項對話方塊,使用者可以選擇自己的按鈕的個數 ", " 選項對話方塊標題 ",JOptionPane.YES_OPTION, JOptionPane.QUESTION_MESSAGE, null, options, options[0]); if(response==0) { this.setTitle(" 您按下了第 OK 按鈕 "); }else if(response==1) { this.setTitle(" 您按下了第 Cancel 按鈕 "); } else