Swing中提供了JOptionPane類來實(shí)現(xiàn)類似Windows平臺(tái)下的MessageBox的功能,同樣在Java中也有,利用 JOptionPane類中的各個(gè)static方法來生成各種標(biāo)準(zhǔn)的對(duì)話框,實(shí)現(xiàn)顯示出信息、提出問題、警告、用戶輸入?yún)?shù)等功能。這些對(duì)話框都是模式對(duì) 話框。
ConfirmDialog --- 確認(rèn)對(duì)話框,提出問題,然后由用戶自己來確認(rèn)(按"Yes"或"No"按鈕)
InputDialog --- 提示輸入文本
MessageDialog --- 顯示信息
OptionDialog -- 組合其它三個(gè)對(duì)話框類型。
這四個(gè)對(duì)話框可以采用showXXXDialog()來顯示,如showConfirmDialog()顯示確認(rèn)對(duì)話框、 showInputDialog()顯示輸入文本對(duì)話框、showMessageDialog()顯示信息對(duì)話框、showOptionDialog() 顯示選擇性的對(duì)話框。它們所使用的參數(shù)說明如下:
① ParentComponent:指示對(duì)話框的父窗口對(duì)象,一般為當(dāng)前窗口。也可以為null即采用缺省的Frame作為父窗口,此時(shí)對(duì)話框?qū)⒃O(shè)置在屏幕的正中。
② message:指示要在對(duì)話框內(nèi)顯示的描述性的文字
③ String title:標(biāo)題條文字串。
④ Component:在對(duì)話框內(nèi)要顯示的組件(如按鈕)
⑤ Icon:在對(duì)話框內(nèi)要顯示的圖標(biāo)
⑥ messageType:一般可以為如下的值ERROR_MESSAGE、INFORMATION_MESSAGE、WARNING_MESSAGE、QUESTION_MESSAGE、PLAIN_MESSAGE、
⑦ optionType:它決定在對(duì)話框的底部所要顯示的按鈕選項(xiàng)。一般可以為DEFAULT_OPTION、YES_NO_OPTION、YES_NO_CANCEL_OPTION、OK_CANCEL_OPTION。
使用實(shí)例:
(1)顯示MessageDialog
JOptionPane.showMessageDialog(null, "在對(duì)話框內(nèi)顯示的描述性的文字", "標(biāo)題條文字串", JOptionPane.ERROR_MESSAGE);
(2)顯示ConfirmDialog
JOptionPane.showConfirmDialog(null, "choose one", "choose one", JOptionPane.YES_NO_OPTION);
(3)顯示OptionDialog:該種對(duì)話框可以由用戶自己來設(shè)置各個(gè)按鈕的個(gè)數(shù)并返回用戶點(diǎn)擊各個(gè)按鈕的序號(hào)(從0開始計(jì)數(shù))
Object[] options = {"確定","取消","幫助"};
int response=JOptionPane.showOptionDialog(this, "這是個(gè)選項(xiàng)對(duì)話框,用戶可以選擇自己的按鈕的個(gè)數(shù)", "選項(xiàng)對(duì)話框標(biāo)題",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按鈕 ");
}
(4)顯示InputDialog 以便讓用戶進(jìn)行輸入
String inputValue = JOptionPane.showInputDialog("Please input a value");
(5)顯示InputDialog 以便讓用戶進(jìn)行選擇地輸入
Object[] possibleValues = { "First", "Second", "Third" }; //用戶的選擇項(xiàng)目
Object selectedValue = JOptionPane.showInputDialog(null, "Choose one", "Input",JOptionPane.INFORMATION_MESSAGE, null, possibleValues, possibleValues[0]);
setTitle("您按下了"+(String)selectedValue+"項(xiàng)目");