在swing中,基于業務的考量,會有對話框來限制使用者的行為及對使用者的動作進行提示.
Swing中提供了JOptionPane類來實作類似Windows平台下的MessageBox的功能,同樣在Java中也有,利用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
JOptionPane.showConfirmDialog(null, "choose one", "choose one", JOptionPane.YES_NO_OPTION);
(3)顯示OptionDialog:該種對話框可以由使用者自己來設定各個按鈕的個數并傳回使用者點選各個按鈕的序号(從0開始計數)
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按鈕 ");
(4)顯示InputDialog 以便讓使用者進行輸入
String inputValue = JOptionPane.showInputDialog("Please input a value");
(5)顯示InputDialog 以便讓使用者進行選擇地輸入
Object[] possibleValues = { "First", "Second", "Third" }; //使用者的選擇項目
Object selectedValue = JOptionPane.showInputDialog(null, "Choose one", "Input",JOptionPane.INFORMATION_MESSAGE, null, possibleValues, possibleValues[0]);
setTitle("您按下了"+(String)selectedValue+"項目");
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
package org.angus.yang;
import java.awt.Component;
import javax.swing.JOptionPane;
public class TestDialog extends Component{
/**
在swing中,基于業務的考量,會有對話框來限制使用者的行為及對使用者的動作進行提示.下面是出自csdn中alickman的答複回複的内容.
ConfirmDialog --- 确認對話框,提出問題,然後由使用者自己來确認(按"Yes"或"No"按鈕)
InputDialog --- 提示輸入文本
MessageDialog --- 顯示資訊
OptionDialog -- 組合其它三個對話框類型。
① 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。
*/
public void ss(){
// 使用執行個體:
// (1)顯示MessageDialog
JOptionPane.showMessageDialog(null, "在對話框内顯示的描述性的文字", "标題條文字串",
JOptionPane.ERROR_MESSAGE);
// (2)顯示ConfirmDialog
JOptionPane.showConfirmDialog(null, "choose one", "choose one",
JOptionPane.YES_NO_OPTION);
// (3)顯示OptionDialog:該種對話框可以由使用者自己來設定各個按鈕的個數并傳回使用者點選各個按鈕的序号(從0開始計數)
Object[] options = { "确定", "取消", "幫助" };
int response = JOptionPane.showOptionDialog(this,
"這是個選項對話框,使用者可以選擇自己的按鈕的個數", "選項對話框标題", JOptionPane.YES_OPTION,
JOptionPane.QUESTION_MESSAGE, null, options, options[0]);
if (response == 0) {
System.out.println("您按下了第OK按鈕 ");
} else if (response == 1) {
System.out.println("您按下了第Cancel按鈕 ");
} else if (response == 2) {
System.out.println("您按下了第Help按鈕 ");
}
// (4)顯示InputDialog 以便讓使用者進行輸入
String inputValue = JOptionPane.showInputDialog("Please input a value");
System.out.println("您輸入的資料為:"+inputValue);
// (5)顯示InputDialog 以便讓使用者進行選擇地輸入
Object[] possibleValues = { "First", "Second", "Third" }; // 使用者的選擇項目
Object selectedValue = JOptionPane.showInputDialog(null, "Choose one",
"Input", JOptionPane.INFORMATION_MESSAGE, null, possibleValues,
possibleValues[0]);
System.out.println("您按下了"+(String)selectedValue+"項目");
}
public static void main(String[] args){
TestDialog testDialog = new TestDialog();
testDialog.ss();
<a href="http://blog.csdn.net/lushuaiyin/article/details/6775705">http://blog.csdn.net/lushuaiyin/article/details/6775705</a>
<a href="http://blog.csdn.net/tsaid/article/details/7962798">http://blog.csdn.net/tsaid/article/details/7962798</a>