確認對話框ConfirmDialog給出提示信息和若干個按鈕供用戶選擇,共有4個showConfirmDialog重載方法。對話框的按鈕通常為:“是”、“否”、“取消”和“確認”及組合,showConfirmDialog()方法的返回值為整型常量,當按下一個按鈕時,返回相應的整型常量,“是”、“否”、“取消”和“確認”對應的常量分別是:0、1、2、0,當按下對話框的“關閉按鈕”關閉對話框時,返回值是:-1。
1. showConfirmDialog(Component parentComponent, Object message);
這個方法由參數“Object message”給出提示信息,按鈕為默認的“是”、“否”和“取消”。
例:int n=JOptionPane.showConfirmDialog(null, "提示信息");
2.showConfirmDialog(Component parentComponent, Object message, String title, int optionType);
參數“int optionType”確定了按鈕的定制,具體取值是:
DEFAULT_OPTION //“確定”按鈕
YES_NO_OPTION // “是”、“否”按鈕
YES_NO_CANCEL_OPTION //“是”、“否”、“取消”按鈕
OK_CANCEL_OPTION //“確定”、“取消”按鈕
參數“Object message”給出提示信息,參數“String title”給出對話框標題。
例int n=JOptionPane.showConfirmDialog(null, "提示信息","標題",JOptionPane.DEFAULT_OPTION);
只有一個“確定”選擇,選中后返回值是0。
例int n=JOptionPane.showConfirmDialog(null, "提示信息","標題",JOptionPane.YES_NO_OPTION);
選中“是”返回0,選中“否”返回1。
例int n=JOptionPane.showConfirmDialog(null, "提示信息","標題",JOptionPane.YES_NO_CANCEL_OPTION);
返回值:“是”:0,“否”:1,“取消”:2 。
例int n=JOptionPane.showConfirmDialog(null, "提示信息","標題",JOptionPane.OK_CANCEL_OPTION);
返回值:“確定”:0,“取消”:2 。
3.showConfirmDialog(Component parentComponent, Object message, String title, int optionType, int messageType);
這個方法增加了一個圖標類型的參數“int messageType”,具體取值是:
ERROR_MESSAGE
INFORMATION_MESSAGE
WARNING_MESSAGE
QUESTION_MESSAGE(默認類型)
PLAIN_MESSAGE(無圖標)
具體應用可參考消息對話框的實例。
例 int n=JOptionPane.showConfirmDialog(null,"提示信息","標題",JOptionPane.YES_NO_CANCEL_OPTION,JOptionPane. INFORMATION_MESSAGE);
4. showConfirmDialog(Component parentComponent, Object message, String title, int optionType, int messageType, Icon icon);
這個方法增加了一個參數“Icon icon”,通過該參數,用戶可以把自己的圖標添加到對話框中;
例
Icon icon=new ImageIcon("grapes.gif");
Int n=JOptionPane.showConfirmDialog(null,"提示信息","標題",JOptionPane.YES_NO_CANCEL_OPTION,JOptionPane. INFORMATION_MESSAGEicon);
5. showOptionDialog(Component parentComponent, Object message, String title, int optionType, int messageType, Icon icon, Object[] options, Object initialValue);
選擇對話框OptionDialog是一個充分由用戶自定義的對話框,showOptionDialog是一個8個參數的方法,參數“Object[] options”定義了一個按鈕數組集合,每個按鈕對應的返回值是其在數組中的下標,當參數“Object[] options”不空時,參數“int optionType”和“int messageType”作用不大,參數“Object initialValue”確定了默認選中的按鈕。
例:
import javax.swing.JOptionPane;
import javax.swing.Icon;
import javax.swing.ImageIcon;
class TestDialog{
public static void main(String args[]){
Icon icon=new ImageIcon("grapes.gif");
Object[] possibilities = {"蘋果", "橘子", "葡萄" };
int n=JOptionPane.showOptionDialog(null, "請選擇你喜歡的水果","水果",JOptionPane.YES_NO_CANCEL_OPTION,JOptionPane.QUESTION_MESSAGE,icon,possibilities,possibilities[0]);
String s=”你喜歡的水果是:”;
switch(n){
case 0:
s=s+”蘋果”;
break;
sase 1:
s=s+"橘子";
break;
sase 2:
s=s+”葡萄”;
break;
default:
s=”你沒有選擇喜歡的水果”;
}
JOptionPane.showMessageDialog(null,s,"水果",
JOptionPane.INFORMATION_MESSAGE);
System.exit(0);
}
}
綜合應用:猜數游戲
import javax.swing.JOptionPane;
class TestDialog{
public static void main(String args[]){
Object[] options = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9" };
int x=(int)(10*Math.random());
int flag=0,y;
String s="請選擇你猜的數。";
for(int i=0;i<3;i++){
if(i==0)
s=s+”\n你共有三次機會。”;
else if(i==1)
s=s+”\n你還有2次機會。”;
else
s=s+”\n你只有1次機會了。”;
y=JOptionPane.showOptionDialog(null, s,"猜數游戲",JOptionPane.QUESTION_MESSAGE, null,options, options[0]);
if(y>x)
s=”大了!\n請選擇你猜的數。”;
else if(y<x)
s=”小了!\n請選擇你猜的數。”;
else{
if(i==0)
s="你太厲害了。";
else if(i==1)
s="你很聰明。";
else
s=””;
JOptionPane.showMessageDialog(null,"恭喜你猜對了!"+s,
"猜數游戲",JOptionPane.INFORMATION_MESSAGE);
flag++;
break;
}
}
if(flag==0)
JOptionPane.showMessageDialog(null,"很遺憾你沒有猜對!",
"猜數游戲",JOptionPane.INFORMATION_MESSAGE);
}
}
下面是程序運行的一些截屏:
http://lbsnm.iteye.com/blog/1478136