3.4.7 细说JOptionPane
我们曾介绍和使用过
JOptionPane
的简单输入、输出操作。让我们走进
javax.swing
库包中的
JOptionPane
,以此为例,详细探讨怎样利用库包文档来了解类的功能,并如何利用
API
类来编写程序。图
3.4
显示了
JOptionPane
类的文档网页内容。
(见本书第
3
章)
图中的上端显示了这个类的继承链和接口。我们将在以后的章节讨论类的继承和接
口问题。网页中间部分解释了这个类的主要功能。下方列出了这个类所提供的方法。我
们已经简单使用过其中的两个方法。首先,让我们深入了解这两个方法及其其他功能;
然后介绍其他我们还没有应用过的方法,如
showConfirmDialog()
。希望我们这个学习步骤对通过库包文档网页来了解和使用库类,都有所帮助。表
3.11
列出了
JOptionPane
的常用方法。
3W
JOptionPane
属于
javax.swing
库包,提供了功能强大的图像用户接口(
GUI
)以及对话式的输入、输出操作。由于它的方法都是静态的(
static
),我们不用创建对象,直接用类名就可以调用其方法。
表
3.11 JOptionPane
常用方法
方
法
|
功
能
|
public Static String showInputDialog (Object message)
|
显示一个有
message
的对话窗口,并将用户在输入域输入的数据按字符串返回。
message
通常为字符串。
|
public static String showInputDialog (Obj-ect message
,
Object
initialSelecti- onValue)
|
显示一个有
message
的对话窗口,并在输入域显示预设值
initialSelectionValue
。将用户在输入域输入的数据或预设值按字符串返回。
message
和
initialSelectionValue
通常为字符串。
|
public static String showInputDialog (Component parentComponent,
Object
message, Object initialSelectionValue)
|
在上一级窗口
parentComponent
中显示一个有
message
的对话窗口,并在输入域显示预设值
initialSelectionValue
。将用户在输入域输入的数据或预设值按字符串返回。
parentComponent
通常为
null
;
message
和
initialSelectionValue
通常为字符串。
|
续表
方
法
|
功
能
|
public static String showInputDialog (Component parentComponent, Object message, String title,
int messageType)
|
在上一级窗口
parentComponent
中显示一个有
message
的对话窗口,并显示对话窗口标题
title
,以及消息图标
messageType
。将用户在输入域输入的数据按字符串返回。
parentComponent
通常为
null
;
message
和
initialSelectionValue
通常为字符串;
messageType
的值见表
3.12
。
|
public static void showMessageDialog (Component parentComponent,
Object
message)
|
在上一级窗口
parentComponent
中显示一个有
message
的输出窗口。
parentComponent
通常为
null
;
message
通常为字符串,或者
GUI
组件。
|
public static void showMessageDialog (Component parentComponent, Object message, String title,
int messageType)
|
在上一级窗口
parentComponent
中显示一个有
message
的输出窗口,并显示窗口标题
title
,以及消息图标
messageType
。
parentComponent
通常为
null
;
message
通常为字符串,或者
GUI
组件。
messageType
的值见表
3.12
。
|
public static int showConfirmDialog (Component parentComponent,
Object
message)
|
显示一个带有选项按钮
Yes
、
No
和
Cancel
的
message
对话窗口,并返回用户的选项
(
Yes=1
、
No=2,
Cancel=3
)
值。窗口标题为
Select an Option
。
|
表
3.12 JOptionPane
的消息图标类型
消息图标类型
|
整
数
值
|
图
标
|
ERROR_MESSAGE
|
0
|
X
型图标
|
INFORMATION_MESSAGE
|
1
|
倒惊叹号图标
|
WARNING_MESSAGE
|
2
|
惊叹号图标
|
QUESTION_MESSAGE
|
3
|
问号图标
|
PLAIN_MESSAGE
|
-
1
|
不显示任何图标
|
不难看出,
JOptionPane
的所有方法都是
static
,即这些方法可以直接用
JOptionPane
调用,而不用创建对象。这种方法被称作静态方法。我们将在以后的章节详细讨论静态方法和它的应用。另外,
JOptionPane
提供的这些方法可以总结为两种类型:提供对话窗口,提示用户输入,并返回输入值的方法,如
showInputDialog()
和
showComfirmDialog()
;以及显示输出信息的方法,如
showMessageDialog()
。虽然有些方法的参数较多,参数类型也较多样化,但万变不离其宗。懂得了基本应用,其他也就不难了。
当然,对于初学者来说,试图从类库文档网页或本书的列表解释中懂得和掌握列举的类和方法是不可能的。可行的学习方法如下:
1.
大概了解列表和解释的含义。
2.
知道这个方法的返回类型和参数要求,如几个参数和每个参数的类型。
3.
打开一个
IDE
,如
Eclipse
,编写一个测试程序,按照方法规范和解释,输入这个方法。“亲口尝尝梨子的滋味。”
4.
对照文档网页,列表和解释,加深理解。
5.
参考其他例子,掌握应用。
以下代码测试了所有列在表
3.12
中的方法。表
3.13
列出了程序的运行结果和方法调用对照。
//
完整程序在本书配套资源目录
Ch3
中名为
TestJOptionPaneApp.java
//Demo of testing the methods of JOptionPane
import javax.swing.JOptionPane;
public class TestJOptionPaneApp {
public static void main(String[] args) {
//test the first method listed in 3.11 with one argument
String str = JOptionPane.showInputDialog("please enter a number: ");
//test the second one with 2 arguments. "120" should be the default entry
str = JOptionPane.showInputDialog("please enter a number: ", "120");
//test the fourth one with 4 arguments
str = JOptionPane.showInputDialog(null, "please enter a number: ",
"Input windows", -1);
//test the fifth one with 2 arguments
JOptionPane.showMessageDialog(null, "This is another testing.");
//test the sixth one with 4 arguments;
//the JOptionPane.QUESTION_MESSAGE can be 3
JOptionPane.showMessageDialog(null, "Testing..... " + str,
"Testing Window",
JOptionPane.QUESTION_MESSAGE );
//test the last one: showConfirmDialog()
JOptionPane.showConfirmDialog(null, "Make a choice: ");
} //end of main()
} //end of TestJOptionPaneApp
通过这个测试程序,我们更进一步了解到,在
showInputDialog()
中,如果没有规定消息图标类型,则自动显示问号图标
QUESTION_MESSAGE
;而在
showMessageDialog()
中,则自动显示信息图标
INFORMATION_MESSAGE
。在
showConfirmDialog()
中,预先设置的选项为按钮
Yes
。
在以后的章节中,当介绍和讨论了
GUI
组件和
JFrame
后,我们将使用
parentComponent
替换
null
,来测试它们的运行结果,并比较和总结它们的不同之处。
以上例子的运行结果见本书第三章表
3.13
。
更多信息
Java
虚拟机把输入、输出信息一律按照字符串形式处理。即在进行输入操作时,将所有输入数据都转换成字符串;在进行输出操作时,要求输出信息必须是字符串形式。所以我们在程序中必须做相应的转换。
本文转自高永强51CTO博客,原文链接:
http://blog.51cto.com/yqgao/172171
,如需转载请自行联系原作者