Java 创建图形用户界面(GUI)组件详解之对话框(弹窗)组件 JoptionPane
Java 创建图形用户界面(GUI)组件详解之对话框(弹窗)组件 JoptionPane
组件详解
对话框(弹窗)组件
-
对话框:向用户显示信息或者获取用户提供的信息
-
分类:
-
模式对话框:在结束对它的处理之前,不允许用户与应用程序的其余窗口进行交互,主要用于在程序继续运行之前获取用户提供的信息。
例如,当用户想要读取一个文件时,就会弹出一个模式文件对话框;用户必须给定一个文件名,然后程序才能够开始读操作;只有用户关闭这个模式对话框之后,应用才能够继续执行。
-
无模式对话框:允许用户同时在对话框和应用程序的其他部分输入信息
例如,工具条。只要需要,工具条可以停靠在任何地方,而且用户可以根据需要同时与应用窗口和工具条进行交互。
-
标准对话框:JoptionPane
-
Swing 有一组现成的简单对话框,可以让用户提供一些信息。
JOptionPane 有 4 个用于显示对话框的静态方法:
- showMessageDialog() :显示一条消息并等待用户点击 OK
- showConfirmDialog() :显示一条消息并等待用户确认(如 OK/Cancel)
- showOptionDialog() :显示一条消息并获得用户在一组选项中的选择
- showInputDialog() :显示一条消息并获得用户输人的一行文本
-
对话框有以下组件:
-
一个图标
-
一条消息
-
一个或多个选项按钮
-
输入对话框有一个用于接收用户输人的额外组件。
一个文本域,用户可以输入任何的字符串,或是一个组合框,用户可以从中选择一项。
-
-
这些对话框的具体布局和为标准消息类型选择的图标都取决于可插接式观感。
左侧的图标取决于下面 5 种消息类型:
- ERROR_MESSAGE
- INFORMATION_MESSAGE
- WARNING_MESSAGE
- QUESTION_MESSAGE
- PLAIN_MESSAGE(该类型没有图标)
每个对话框类型都有一个方法,可以用来提供自己的图标,以替代原来的图标。
-
可以为每个对话框类型指定一条消息
这里的消息既可以是字符串、图标、用户界面组件,也可以是其他类型的对象。
可以如下显示消息对象:
- String:绘制字符串;
- Icon:显示图标;
- Component:显示组件;
- Object[]:显示数组中的所有对象,依次叠加
- 任何其它对象:调用 toString() 方法来显示结果字符串
提供字符串消息是目前为止最常见的情况,而提供一个 Component 会带来更大的灵活性,这是因为可以让
paintComponent()
方法绘制你想要的任何内容。 -
对话框位于底部的按钮取决于对话框类型和选项类型
-
showMessageDialog():只能看到一个标准的按钮:确认
-
showInputDialog():只能看到一组标准按钮:确认/取消
-
showOptionDialog() :可以指定一组任意的选项
需要提供一个对象数组作为选项,每个数组元素会如下显示:
- String:创建一个按钮,使用字符串作为标签
- Icon:创建一个按钮,使用图标作为标签
-
Component:显示这个组件
-
-
其他类型的对象:应用 toString() 方法,然后创建一个按钮,用结果字符串作为标签。
-
showConfirmDialog() :可以指定 optionType(选项类型)属性为四种选项类型之一:
- DEFAULT_OPTION(默认选项)
- YES_NO_OPTION(Yes/No 选项)
- YES_NO_CANCEL_OPTION(Yes/No/Cancel 选项)
- OK_CANCEL_OPTION(ok 选项)
代码示例:
int selection = JOptionPane.showConfirmDialog(parent, "Message","Title", JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE); if (selection =JOptionPane.OK OPTION){ ... }
JoptionPane 常用方法
javax.swing.JoptionPane:
-
显示一个消息对话框或者一个内部消息对话框(内部对话框完全显示在其父组件窗体内)
static void showMessageDialog(Component parent, Object message, String title, int messageType, Icon icon) static void showMessageDialog(Component parent, Object message, String title, int messageType) static void showMessageDialog(Component parent, Object message) static void showInternalMessageDialog(Component parent, Object message, String title, int messageType,Icon icon) static void showInternalMessageDialog(Component parent, Object message, String title, int messageType) static void showInternalMessageDialog(Component parent, Object message)
- parent(父组件)参数:可以为 null
- message 参数:显示在对话框中的消息可以是字符串、图标、组件或者它们的一个数组
- messageType 参数:取值为 ERROR_MESSAGE、INFORMATION_MESSAGE、WARNING_MESSAGE、QUESTION_MESSAGE 和 PLAIN_MESSAGE
-
显示一个确认对话框或者内部确认对话框(内部对话框完全显示在其父组件窗体内)
static int showConfirmDialog(Component parent, Object message, String title, int optionType, int messageType, Icon icon) static int showConfirmDialog(Component parent, Object message, String title, int optionType, int messageType) static int showConfirmDialog(Component parent, Object message, String title, int optionType) static int showConfirmDialog(Component parent, Object message) static int showInternalConfirmDialog(Component parent, object message, String title, int optionType,int messageType,Icon icon) static int showInternalConfirmDialog(Component parent, Object message, String title, int optionType,int messageType) static int showInternalConfirmDialog(Component parent, Object message, String title, int optionType) static int showInternalConfirmDialog(Component parent, Object message)
- 返回值:返回用户选择的选项的索引值
- OK_OPTION 选项的索引值为 0
- YES_OPTION 选项的索引值为 0
- NO_OPTION 选项的索引值为 1
- CANCEL_OPTION 选项的索引值为 2
- CLOSED_OPTION 选项(用户关闭对话框)的索引值为 -1
- optionType 参数:取值为 DEFAULT_OPTION、YES_NO_OPTION、YES_NO_CANCEL_OPTION、OK_CANCEL_OPTION
- 其他参数同消息对话框
- 返回值:返回用户选择的选项的索引值
-
显示一个选项对话框或者内部选项对话框(内部对话框完全显示在其父组件窗体内)
static int showoptionDialog(Component parent, Object message, String title, int optionType, int messageType, Icon icon, Object[] options, Object default) static int showInternalOptionDialog(Component parent, Object message, String title, int optionType, int messageType, Icon icon, Object[] options, Object default)
- 返回值:返回用户选择的选项的索引值
- 参数同消息对话框
-
显示一个输入对话框或者内部输入对话框(内部对话框完全显示在其父组件窗体内)
static Object showInputDialog(Component parent, Object message, String title, int messageType, Icon icon, Object[] values,Object default) static String showInputDialog(Component parent, Object message, String title, int messageType) static String showInputDialog(Component parent, Object message) static String showInputDialog(Object message) static String showInputDialog(Component parent, Object message, Object default) static String showInputDialog(Object message, Object default) static Object showInternalInputDialog(Component parent, Object message, String title, int messageType, Icon icon, Object[]values, Object default) static String showInternalInputDialog(Component parent, Object message, String title, int messagelype) static String showInternalInputDialog(Component parent, Object message)
- 返回值:返回用户输入的字符串;如果用户取消了对话框则返回 null
- 参数同消息对话框
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)