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


相关文章
|
13天前
|
Java 开发者
Java面试题:请解释内存泄漏的原因,并说明如何使用Thread类和ExecutorService实现多线程编程,请解释CountDownLatch和CyclicBarrier在并发编程中的用途和区别
Java面试题:请解释内存泄漏的原因,并说明如何使用Thread类和ExecutorService实现多线程编程,请解释CountDownLatch和CyclicBarrier在并发编程中的用途和区别
15 0
|
13天前
|
安全 Java 开发者
Java面试题:什么是Java 15中的密封类以及其限制?还有哪些其他特性用于限制类继承的机制吗?
Java面试题:什么是Java 15中的密封类以及其限制?还有哪些其他特性用于限制类继承的机制吗?
15 1
|
13天前
|
设计模式 存储 安全
Java面试题:设计一个线程安全的单例类并解释其内存占用情况?使用Java多线程工具类实现一个高效的线程池,并解释其背后的原理。结合观察者模式与Java并发框架,设计一个可扩展的事件处理系统
Java面试题:设计一个线程安全的单例类并解释其内存占用情况?使用Java多线程工具类实现一个高效的线程池,并解释其背后的原理。结合观察者模式与Java并发框架,设计一个可扩展的事件处理系统
25 1
|
14天前
|
负载均衡 安全 Java
Java中的服务治理与API网关实现
Java中的服务治理与API网关实现
|
14天前
|
Java 调度
Calendar类在Java中的应用
Calendar类在Java中的应用
|
14天前
|
监控 安全 Java
在Java中集成第三方API调用的最佳实践
在Java中集成第三方API调用的最佳实践
|
1天前
|
存储 算法 Java
Java类是在什么时候加载到JVM中的?加载类时,实际上加载的是什么
Java类是在什么时候加载到JVM中的?加载类时,实际上加载的是什么
|
5天前
|
分布式计算 Java 调度
MaxCompute产品使用合集之使用Tunnel Java SDK上传BINARY数据类型时,应该使用什么作为数据类字节
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
13天前
|
存储 运维 前端开发
Java面试题:什么是Java的异常处理机制?列举常见的异常类,并说明使用场景
Java面试题:什么是Java的异常处理机制?列举常见的异常类,并说明使用场景
24 0
|
13天前
|
并行计算 Java 数据挖掘
Java面试题:解释Java中的Stream API及其操作
Java面试题:解释Java中的Stream API及其操作
20 0

热门文章

最新文章