Java输入对话框共有6个重载方法showInputDialog(),其中两个与其他组件无关联;均为静态方法,返回值都是String类型。
1. showInputDialog(Object message)
这是最简单的输入对话框,只有一个参数,通常是用来提示用户进行正确输入的字符串。
例:JOptionPane.showInputDialog("提示信息");
2. showInputDialog(Component parentComponent, Object message)
这是与父组件关联的输入对话框,有两个参数,第一个参数为父组件,通常可取为null ,第二个是提示信息。
例:JOptionPane.showInputDialog(null,"提示信息");运行结果同例1。
3.showInputDialog(Object message, Object initialSelectionValue)
这个方法有两个参数,一个是提示信息,一个是初始默认值。
例:JOptionPane.showInputDialog("提示信息","默认值");
4.showInputDialog(Component parentComponent, Object message, Object initialSelectionValue)
这个方法是与其他组件关联的带有初始默认值的输入对话框,运行结果同例3。
例:JOptionPane.showInputDialog(null,"提示信息","默认值");
5.showInputDialog(Component parentComponent, Object message, String title, int messageType)
这个方法可以自己定义标题和选择图标类型,图标的类型有:
ERROR_MESSAGE
INFORMATION_MESSAGE
WARNING_MESSAGE
QUESTION_MESSAGE(默认类型)
PLAIN_MESSAGE(无图标)
例:JOptionPane.showInputDialog(null,"提示信息","标题",JOptionPane.ERROR_MESSAGE);
6.showInputDialog(Component parentComponent, Object message, String title, int messageType, Icon icon, Object[] selectionValues, Object initialSelectionValue)
这是一个功能完整的方法,除了自己定义标题外,可以通过Icon icon参数可以自定义图标,通过Object[] selectionValues参数可以自定义下拉列表,供用户进行选择输入,通过Object initialSelectionValue参数设定初始值。
例:
import javax.swing.JOptionPane;
import javax.swing.Icon;
import javax.swing.ImageIcon;
class TestMessageDialog{
public static void main(String args[]){
Icon icon=new ImageIcon("grapes.gif");
Object[] possibilities = {"苹果", "橘子", "葡萄" };
JOptionPane.showInputDialog(null,"请选择你喜欢的水果","水果",JOptionPane.QUESTION_MESSAGE,icon,possibilities,possibilities[0]);
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;
JOptionPane.showMessageDialog(null,"请猜一个0-9的数,\n最多有三次机会!",
"猜数游戏",JOptionPane.INFORMATION_MESSAGE);
for(int i=0;i<3;i++){
s=(String)JOptionPane.showInputDialog(null,"你第"+(i+1)+"次选择的数是:",
"猜数游戏",JOptionPane.QUESTION_MESSAGE, null,options, options[0]);
y=Integer.parseInt(s);
if(y>x)
JOptionPane.showMessageDialog(null,"你猜的数大了,\n还有"+(2-i)
+"次机会!","猜数游戏",JOptionPane.INFORMATION_MESSAGE);
else if(y<x)
JOptionPane.showMessageDialog(null,"你猜的数小了,\n还有"+(2-i)
+"次机会!","猜数游戏",JOptionPane.INFORMATION_MESSAGE);
else{
if(i==0)
s="你太厉害了。";
else if(i==1)
s="你很聪明。";
JOptionPane.showMessageDialog(null,"恭喜你猜对了!"+s,
"猜数游戏",JOptionPane.INFORMATION_MESSAGE);
flag++;
break;
}
}
if(flag==0)
JOptionPane.showMessageDialog(null,"很遗憾你没有猜对!",
"猜数游戏",JOptionPane.INFORMATION_MESSAGE);
}
}