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


相关文章
|
3天前
|
Java 关系型数据库 MySQL
Elasticsearch【问题记录 01】启动服务&停止服务的2类方法【及 java.nio.file.AccessDeniedException: xx/pid 问题解决】(含shell脚本文件)
【4月更文挑战第12天】Elasticsearch【问题记录 01】启动服务&停止服务的2类方法【及 java.nio.file.AccessDeniedException: xx/pid 问题解决】(含shell脚本文件)
28 3
|
4天前
|
Java API Apache
ZooKeeper【基础 03】Java 客户端 Apache Curator 基础 API 使用举例(含源代码)
【4月更文挑战第11天】ZooKeeper【基础 03】Java 客户端 Apache Curator 基础 API 使用举例(含源代码)
23 11
|
6天前
|
安全 Java API
java借助代理ip,解决访问api频繁导致ip被禁的问题
java借助代理ip,解决访问api频繁导致ip被禁的问题
|
7天前
|
Java 编译器
Java Character 类
4月更文挑战第13天
|
8天前
|
存储 Java
Java基础教程(7)-Java中的面向对象和类
【4月更文挑战第7天】Java是面向对象编程(OOP)语言,强调将事务抽象成对象。面向对象与面向过程的区别在于,前者通过对象间的交互解决问题,后者按步骤顺序执行。类是对象的模板,对象是类的实例。创建类使用`class`关键字,对象通过`new`运算符动态分配内存。方法包括构造函数和一般方法,构造函数用于对象初始化,一般方法处理逻辑。方法可以有0个或多个参数,可变参数用`类型...`定义。`this`关键字用于访问当前对象的属性。
|
8天前
|
存储 安全 Java
说说Java 8 引入的Stream API
说说Java 8 引入的Stream API
12 0
|
8天前
|
分布式计算 Java API
Java 8新特性之Lambda表达式与Stream API
【4月更文挑战第16天】本文将介绍Java 8中的两个重要新特性:Lambda表达式和Stream API。Lambda表达式是Java 8中引入的一种新的编程语法,它允许我们将函数作为参数传递给其他方法,从而使代码更加简洁、易读。Stream API是Java 8中引入的一种新的数据处理方式,它允许我们以声明式的方式处理数据,从而使代码更加简洁、高效。本文将通过实例代码详细讲解这两个新特性的使用方法和优势。
|
9天前
|
安全 Java API
RESTful API设计与实现:Java后台开发指南
【4月更文挑战第15天】本文介绍了如何使用Java开发RESTful API,重点是Spring Boot框架和Spring MVC。遵循无状态、统一接口、资源标识和JSON数据格式的设计原则,通过创建控制器处理HTTP请求,如示例中的用户管理操作。此外,文章还提及数据绑定、验证、异常处理和跨域支持。最后,提出了版本控制、安全性、文档测试以及限流和缓存的最佳实践,以确保API的稳定、安全和高效。
|
12天前
|
Java Shell
Java 21颠覆传统:未命名类与实例Main方法的编码变革
Java 21颠覆传统:未命名类与实例Main方法的编码变革
13 0
|
12天前
|
Java
Java 15 神秘登场:隐藏类解析未知领域
Java 15 神秘登场:隐藏类解析未知领域
16 0