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


相关文章
|
24天前
|
Java API Maven
如何使用Java开发抖音API接口?
在数字化时代,社交媒体平台如抖音成为生活的重要部分。本文详细介绍了如何用Java开发抖音API接口,从创建开发者账号、申请API权限、准备开发环境,到编写代码、测试运行及注意事项,全面覆盖了整个开发流程。
71 10
|
24天前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
64 2
|
4天前
|
算法 Java API
如何使用Java开发获得淘宝商品描述API接口?
本文详细介绍如何使用Java开发调用淘宝商品描述API接口,涵盖从注册淘宝开放平台账号、阅读平台规则、创建应用并申请接口权限,到安装开发工具、配置开发环境、获取访问令牌,以及具体的Java代码实现和注意事项。通过遵循这些步骤,开发者可以高效地获取商品详情、描述及图片等信息,为项目和业务增添价值。
34 10
|
12天前
|
存储 Java 数据挖掘
Java 8 新特性之 Stream API:函数式编程风格的数据处理范式
Java 8 引入的 Stream API 提供了一种新的数据处理方式,支持函数式编程风格,能够高效、简洁地处理集合数据,实现过滤、映射、聚合等操作。
31 5
|
12天前
|
Java API 开发者
Java中的Lambda表达式与Stream API的协同作用
在本文中,我们将探讨Java 8引入的Lambda表达式和Stream API如何改变我们处理集合和数组的方式。Lambda表达式提供了一种简洁的方法来表达代码块,而Stream API则允许我们对数据流进行高级操作,如过滤、映射和归约。通过结合使用这两种技术,我们可以以声明式的方式编写更简洁、更易于理解和维护的代码。本文将介绍Lambda表达式和Stream API的基本概念,并通过示例展示它们在实际项目中的应用。
|
18天前
|
存储 缓存 安全
java 中操作字符串都有哪些类,它们之间有什么区别
Java中操作字符串的类主要有String、StringBuilder和StringBuffer。String是不可变的,每次操作都会生成新对象;StringBuilder和StringBuffer都是可变的,但StringBuilder是非线程安全的,而StringBuffer是线程安全的,因此性能略低。
40 8
|
18天前
|
Java 开发者
在 Java 中,一个类可以实现多个接口吗?
这是 Java 面向对象编程的一个重要特性,它提供了极大的灵活性和扩展性。
36 1
|
23天前
|
安全 Java API
告别SimpleDateFormat:Java 8日期时间API的最佳实践
在Java开发中,处理日期和时间是一个基本而重要的任务。传统的`SimpleDateFormat`类因其简单易用而被广泛采用,但它存在一些潜在的问题,尤其是在多线程环境下。本文将探讨`SimpleDateFormat`的局限性,并介绍Java 8引入的新的日期时间API,以及如何使用这些新工具来避免潜在的风险。
33 5
|
22天前
|
开发框架 Java 关系型数据库
Java哪个框架适合开发API接口?
在快速发展的软件开发领域,API接口连接了不同的系统和服务。Java作为成熟的编程语言,其生态系统中出现了许多API开发框架。Magic-API因其独特优势和强大功能,成为Java开发者优选的API开发框架。本文将从核心优势、实际应用价值及未来展望等方面,深入探讨Magic-API为何值得选择。
31 2
|
27天前
|
安全 Java
Java多线程集合类
本文介绍了Java中线程安全的问题及解决方案。通过示例代码展示了使用`CopyOnWriteArrayList`、`CopyOnWriteArraySet`和`ConcurrentHashMap`来解决多线程环境下集合操作的线程安全问题。这些类通过不同的机制确保了线程安全,提高了并发性能。