创建对话框有两种方式:
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

Java swing弹框自定义组件 java swing弹出对话框_ico


JOptionPane.YES_NO_CANCEL_OPTION 或 1

Java swing弹框自定义组件 java swing弹出对话框_默认值_02


JOptionPane.OK_CANCEL_OPTION 或 2

Java swing弹框自定义组件 java swing弹出对话框_可选值_03

messageType参数用于显示不同图标,有五种可能:

JOptionPane.ERROR_MESSAGE 或 0

Java swing弹框自定义组件 java swing弹出对话框_Java swing弹框自定义组件_04


JOptionPane.INFORMATION_MESSAGE 或 1

Java swing弹框自定义组件 java swing弹出对话框_ico_05


JOptionPane.WARNING_MESSAGE 或 2

Java swing弹框自定义组件 java swing弹出对话框_ico_06


JOptionPane.QUESTION_MESSAGE 或 3

Java swing弹框自定义组件 java swing弹出对话框_ico_07


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 参数,表示输入对话框的按钮是不可以设置的,通常显示“确定”和“取消”按钮。

如果没有指定可选值(即第一个方法),那么就使用文本框接收输入:

Java swing弹框自定义组件 java swing弹出对话框_ico_08

如果指定了一组可选值(第二个方法实现),可选值的个数小于 20,那么将使用下拉列表显示
eg:

String[] str={"1","2","3","4","5","6","7","8","9","10","11"};
JOptionPane.showInputDialog(null,"请选择数字","选择数字",1,null,str,str[0]);

Java swing弹框自定义组件 java swing弹出对话框_默认值_09


如果指定了一组可选值(第二个方法实现),如果可选值的个数大于或等于 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]);

Java swing弹框自定义组件 java swing弹出对话框_默认值_10


关于两个方法中参数的含义:

参数类型

形参名

含义

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]);

运行结果如下:

Java swing弹框自定义组件 java swing弹出对话框_默认值_11