JOptionPane 收藏

 

2012计算机等级考试二级Java对话框学习教程(上)

8.6 对话框

到目前为止,我们所介绍的每个用户界面组件都出现在应用程序创建的一个框架窗口中。但有时候我们需要弹出独立的对话框以显示信息或者从用户收集信息。对话框,顾名思义,就是向用户显示信息并获取程序继续运行所需数据的窗口,可以起到与用户交互的作用。从本质上讲,对话框时一种特殊的窗体,它通过一个或多个组件与用户交互。与JFrame一样,对话框有边框、有标题且独立存在的容器,并且不能被其他容器所包容,但是对话框不能作为程序的最外层容器,也不能保护菜单栏。此外,java中的对话框上没有最大、最小化按钮。

8.6.1 JOptionPane 选项对话框

JOptionPane提供了许多对话框样式,该类能够让你在不编写任何专门对话框代码的情况下弹出一个简单的对话框。

JOptionPane类提供了7个构造方法用于创建JOptionPane的类对象,不过在实际使用时,

通常不是用new方式创建,而是使用JOptionPane类提供的一些静态方法产生。JOptionPane有四个静态方法来显示这些简单对话框:

(1)showMessageDialog:提示信息对话框,这种对话框通常只含有一个“确定”按钮。

(2)showConfirmDialog :确认对话框,这类对话框通常会询问用户一个问题,要求用户做YES/NO的回答。

(3)showOptionDialog:选择对话框,这类对话框可以让用户自己定义对话框的类型。

(4)showInputDialog:输入对话框,这类对话框可以让用户输入相关的信息,当用户完成输入并按下确定按钮后,系统会得到用户所输入的信息。

对于每种形式的对话框都有多个静态重载方法,下面分别予以说明。

1. Message Dialog

Message Dialog称为提示信息对话框,这种对话框中通常只含有一个“确定”按钮。可以使用showMessage Dialog静态方法来显示一个Message Dialog,showMessageDialog方法具有如下重载形式。

·showMessageDialog(Component parentComponent, Object message)

·showMessageDialog(Component parentComponent, Object message, String title, int messageType)

·showMessageDialog(Component parentComponent, Object message, String title, int messageType, Icon icon)

各参数的含义如下:

parentComponent - 确定在其中显示对话框的 Frame;如果为 null 或者其不具有 Frame,则使用默认的 Frame

message - 要显示的 Object

title - 对话框的标题字符串

messageType - 要显示的消息类型,int枚举类型:ERROR_MESSAGE、INFORMATION_MESSAGE、WARNING_MESSAGE、QUESTION_MESSAGE 或 PLAIN_MESSAGE,这5个值都是JOptionPane的静态数据成员,可直接使用JOptionPane加“。”的方式使用,5个消息类型的显示效果如下表

图8-14 messageType显示效果

icon - 要在对话框中显示的图标,该图标是用户自定义的图标,如果显示该图标,则不会再显示messageType指定的消息类型的系统图标。一般不需要使用,除非用户有特定需求。

showMessageDialog方法无返回值,Message Dialog只是告知用户某些信息,用户除了点击确定按钮外不能与其进行交互。

一个典型的Message Dialog的显示效果见下图

图8-12 典型Message Dialog显示效果

对应语句:

JOptionPane.showMessageDialog(null, “这是一个消息对话框吗?”,“对话框title”,JOptionPane.QUESTION_MESSAGE,null);

2.ConfirmDialog

Confirm Dialog称为确认对话框,这类对话框通常会询问用户一个问题,要求用户作出YES/NO的回答。可以使用showConfirmDialog静态方法来显示一个Confirm Dialog,showConfirmDialog方法具有如下重载形式。

showConfirmDialog(Component parentComponent, Object message)

showConfirmDialog(Component parentComponent, Object message, String title, int optionType)

showConfirmDialog(Component parentComponent, Object message, String title, int optionType, int messageType)

showConfirmDialog(Component parentComponent, Object message, String title, int optionType, int messageType, Icon icon)

showConfirmDialog方法中有6个参数,其中5个与showMessageDialog的参数相同,含义也一样,这里不再重复说明,showConfirmDialog方法中新增一个参数optionType,该参数的含义如下:

optionType—指定可用于对话框的选项的 int:YES_NO_OPTION、YES_NO_CANCEL_OPTION 或 OK_CANCEL_OPTION,具体的显示效果见下表

表8-15 optionType显示效果

showConfirmDialog的返回值为int类型。其中YES,OK=0;NO=1;CANCEL=2;CLOSED=-1(用户直接点击关闭按钮关闭对话框)。通过对返回值的判断,可以做到与用户之间的交互(如用户是按下了确定按钮 还是取消按钮,根据按下按钮的不同做不同的处理)

下面是一个典型的Confirm Dialog的显示效果。

图8-13典型Confirm Dialog显示效果

对应语句:JOptionPane.showConfirmDialog(null, “你确认这是一个确认对话框吗?”,“对话框title”,JOptionPane.YES_NO_OPTION);

3.Input Dialog

Input Dialog称为输入对话框,这类对话框可以让用户输入相关的信息,当用户完成输入并按下确定按钮后,系统会得到用户所输入的信息。输入对话框不见可以让用户自行输入数据,也可以提供ComboBox组件让用户选择相关信息,避免用户输入错误。可以使用showInputDialog静态方法来显示一个Input Dialog,showInputDialog方法具有如下重载形式。

showInputDialog(Object message)

showInputDialog(Object message, Object initialSelectionValue)

showInputDialog(Component parentComponent, Object message)

showInputDialog(Component parentComponent,Object message, Object initialSelectionValue)

showInputDialog(Component parentComponent, Object message, String title, int messageType)

showInputDialog(Component parentComponent, Object message, String title, int messageType, Icon icon, Object[] selectionValues, Object initialSelectionValue)

showInputDialog方法中有7个参数,其中5个与showMessageDialog的参数相同,含义也一样,这里不再重复说明,showInputDialog方法中新增两个参数,selectionValues 和initialSelectionValue,含义如下:

selectionValues—用户可能的选择值,以数组方式赋值,显示形式为ComboBox。

initialSelectionValue—对话框初始化时输入框中的显示值。

showInputDialog方法的返回值有两种:String类型和Object类型,当用户按下确定按钮时会返回用户输入(或选择)的信息,若按下取消按钮则会返回null。

下面是一个典型的Input Dialog的显示效果。

图8-14典型Input Dialog显示效果

对应语句:

JOptionPane.showInputDialog(null ,“请选择城市:”,“对话框title”, JOptionPane.INFORMATION_MESSAGE,null,new String[]{“北京”,“上海”,“广州”,“天津 ”},“北京”);

4.Option Dialog

Option Dialog称为选择对话框,这类对话框可以让用户自己定义对话框的类型。它可以根据需要改变按钮上的文字,而不是系统默认的“确定”、“取消”、“是”、“否”等。可以使用showOptionDialog静态方法来显示一个Option Dialog,该静态方法无重载方法,具体形式如下:

showOptionDialog(Component parentComponent, Object message, String title, int optionType, int messageType, Icon icon, Object[] options, Object initialValue)

该方法提供了8个参数,其中7个参数与showInputDialog的参数完全相同,不再重复说明,新增一个参数options,其含义如下:

options—按钮上的文字,系统会根据options的长度n创建n个按钮。

showOptionDialog的返回值类型为int,当点击由options数组确定的按钮时,其值为options数组的下标值,当点击关闭按钮时其值为-1。

下面是一个典型的Option Dialog的显示效果。

图8-15典型Option Dialog显示效果

对应语句:

JOptionPane.showOptionDialog(null, “选项对话框”, “对话框title”, JOptionPane.YES_NO_OPTION, JOptionPane.INFORMATION_MESSAGE, null,new String[]{“自定义1”,“自定义2”,“自定义3”},“自定义1”);

当点击“自定义1”按钮时,返回值为0,“自定义2”按钮时,返回值为1,“自定义2”按钮时,返回值为2,点击取消按钮时返回值为-1

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值