细说Java的API类JOptionPane

简介:


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 ,如需转载请自行联系原作者


相关文章
|
2月前
|
Java API 数据处理
Java新特性:使用Stream API重构你的数据处理
Java新特性:使用Stream API重构你的数据处理
|
2月前
|
Java 大数据 API
Java Stream API:现代集合处理与函数式编程
Java Stream API:现代集合处理与函数式编程
239 100
|
2月前
|
Java API 数据处理
Java Stream API:现代集合处理新方式
Java Stream API:现代集合处理新方式
267 101
|
2月前
|
安全 Java 数据建模
Java记录类:简化数据载体的新选择
Java记录类:简化数据载体的新选择
232 101
|
2月前
|
并行计算 Java 大数据
Java Stream API:现代数据处理之道
Java Stream API:现代数据处理之道
241 101
|
2月前
|
安全 Java 开发者
Java记录类:简化数据载体的新方式
Java记录类:简化数据载体的新方式
286 100
|
3月前
|
安全 IDE Java
Java记录类型(Record):简化数据载体类
Java记录类型(Record):简化数据载体类
419 143
|
1月前
|
存储 Java 索引
用Java语言实现一个自定义的ArrayList类
自定义MyArrayList类模拟Java ArrayList核心功能,支持泛型、动态扩容(1.5倍)、增删改查及越界检查,底层用Object数组实现,适合学习动态数组原理。
87 4
|
1月前
|
IDE JavaScript Java
在Java 11中,如何处理被弃用的类或接口?
在Java 11中,如何处理被弃用的类或接口?
165 5
|
1月前
|
JSON 网络协议 安全
【Java】(10)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
143 1