创建对话框有两种方式:
1.使用由Java 提供的 JOptionPane 类,用来创建标准对话框。
需要导入:
import javax.swing.JOptionPane;
2.通过扩展 JDialog 类创建自定义的对话框。
一,使用JOptionPane 类
JOptionPane 类可以用来创建 4 种类型的标准对话框:
方法(未写参数) | 对话框 |
showConfirmDialog() | 确认对话框 |
showInputDialog() | 输入对话框 |
showMessageDialog() | 消息对话框 |
showOptionDialog() | 选择对话框 |
关于message参数,有系统提供(在JOptionPane类里)的五个可选,类型不同,图标不同:
• JOptionPane.ERROR_MESSAGE
• JOptionPane.INFORMATION_MESSAGE
• JOptionPane.WARNING_MESSAGE
• JOptionPane.QUESTION_MESSAGE
• JOptionPane.PLAIN_MESSAGE
下面就这四个创建标准框的方法逐一介绍:
1.确认对话框(JOptionPane.showConfirmDialog)
确认对话框弹出后会显示一个消息,并有几个选项由用户来确定选择哪个。
public static int showConfirmDialog(Component parentComponent,Object message,String title,int optionType,int messageType,Icon icon)
关于参数的含义:
参数类型 | 形参名 | 含义 |
Component(必须有) | parentComponent | 对话框所在的容器 |
Object(必须有) | message | 提示消息(对话框消息) |
String(可选) | title | 标题 (默认值为“选择一个选项”) |
int(可选) | optionType | 选择按钮的类型 |
int(可选) | messageType | 消息类型(默认值:QUESTION_MESSAGE) |
Icon(可选) | icon | 自定义消息图标 |
optionType 参数用于控制在对话框上显示的按钮,可选值有三种可能:
JOptionPane.YES_NO_OPTION 或 0
JOptionPane.YES_NO_CANCEL_OPTION 或 1
JOptionPane.OK_CANCEL_OPTION 或 2
messageType参数用于显示不同图标,有五种可能:
JOptionPane.ERROR_MESSAGE 或 0
JOptionPane.INFORMATION_MESSAGE 或 1
JOptionPane.WARNING_MESSAGE 或 2
JOptionPane.QUESTION_MESSAGE 或 3
JOptionPane.PLAIN_MESSAGE
无图标
2.输入对话框(JOptionPane.showInputDialog)
输入对话框用于接收用户的输入。输入组件可以由文本框、下拉列表或者列表框进行实现。
它有两个方法来实现:
public static String showInputDialog(Component parentComponent,Object message,String title,int messageType)
public static Object showInputDSalog(Component parentComponent,Object message,String title,int messageType,Icon icon,Object[] selectionValue,Object initValue)
要注意的是,showInputDialog() 方法中没有 optionType 参数,表示输入对话框的按钮是不可以设置的,通常显示“确定”和“取消”按钮。
如果没有指定可选值(即第一个方法),那么就使用文本框接收输入:
如果指定了一组可选值(第二个方法实现),可选值的个数小于 20,那么将使用下拉列表显示
eg:
String[] str={"1","2","3","4","5","6","7","8","9","10","11"};
JOptionPane.showInputDialog(null,"请选择数字","选择数字",1,null,str,str[0]);
如果指定了一组可选值(第二个方法实现),如果可选值的个数大于或等于 20,那么这些可选值将通过列表框显示
eg:
String[] str={"1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21"};
JOptionPane.showInputDialog(null,"请选择用户名","选择用户名",JOptionPane.YES_NO_CANCEL_OPTION ,null,str,str[0]);
关于两个方法中参数的含义:
参数类型 | 形参名 | 含义 |
Component | parentComponent | 对话框所在的容器 |
Object(必须有) | message | 提示消息(默认值为空) |
String(可选) | title | 标题 (默认值为“输入”) |
int(可选) | messageType | 消息类型(默认值为JOptionPane.QUESTION_MESSAGE) |
Icon | icon | 自定义图标 |
Object[] | selectionValue | 通常是一个数组 |
Object | initValue | 预选项,希望最开始显示出来的选项 |
3.消息对话框(JOptionPane.showMessageDialog)
消息对话框显示一条提示或警告用户的信息,并等待用户单击 OK 或“确定”按钮以关闭对话框。创建消息对话框的方法如下:
public static void showMessageDialog(Component parentComponent,Object message,String title,int messageType,Icon icon)
其中参数的含义:
参数类型 | 参数名称 | 含义 |
Component(必须要) | parentComponent | 对话框所在的容器或为空 |
Object(必须要) | message | 定义提示信息,它是一个对象,但是通常使用字符串表示 |
String(可选) | title | 是设置对话框标题的字符串 |
int(可选) | messageType | 消息类型(上面有说明) |
Icon(可选) | icon | 自定义消息图标 |
4.选择对话框(JOptionPane.showOptionDialog)
选项对话框允许用户自己定制按钮内容。创建选项对话框的方法如下:
public static int showOptionDialog(Component parentComponent,Object message,String title,int optionType,int messageType,icon icon,Object[] options,Object initValue)
//返回值为数组下标
各参数其他对话框中有介绍不再赘述。
eg:
Object[] fruits = {"苹果","梨子","香蕉","西瓜","荔枝"};
int op = JOptionPane.showOptionDialog(null, "你喜欢什么水果", "水果店",JOptionPane.YES_NO_CANCEL_OPTION,JOptionPane.QUESTION_MESSAGE,null, fruits, fruits[0]);
运行结果如下: