使用的教材是java核心技术卷1,我将跟着这本书的章节同时配合视频资源来进行学习基础java知识。
day082 Swing用户界面组件(七:对话框)(选项对话框、创建对话框、数据交换、文件对话框、颜色选择器)
到目前为止,所有的用户界面组件都显示在应用程序创建的框架窗口中。这对于编写运行在Web浏览器中的applets来说是十分常见的情况。但是,如果编写应用程序,通常就需要弹出独立的对话框来显示信息或者获取用户信息。与大多数的窗口系统一样,AWT也分为模式对话框和无模式对话框。所谓模式对话框是指在结束对它的处理之前,不允许用户与应用程序的其余窗口进行交互。模式对话框主要用于在程序继续运行之前获取用户提供的信息。例如,当用户想要读取文件时,就会弹出一个模式对话框。用户必须给定一个文件名,然后程序才能够开始读操作。只有用户关闭(模式)对话框之后,应用程序才能够继续执行。所谓无模式对话框是指允许用户同时在对话框和应用程序的其他窗口中输入信息。使用无模式对话框的最好例子就是工具栏。工具栏可以停靠在任何地方,并且用户可以在需要的时候,同时与应用程序窗口和工具栏进行交互。
1.选项对话框
Swing有一套简单的对话框,用于获取用户的一些简单信息。JOptionPane有4个用于显示这些对话框的静态方法:
showMessageDialog:showConfirmDialog:showOptionDialog:showInputDialog:显示一条消息并等待用户点击OK显示一条消息并等待用户确认(与OK/Cancel类似)显示一条消息并获得用户在一组选项中的选择显示一条消息并获得用户输人的一行文本。
图显示了一个典型的对话框。可以看到,对话框有下列组件:•一个图标•一条消息•一个或多个按钮
输人对话框有一个用于接收用户输入的额外组件。它既可能是用于输入任何字符串的文本域,也可能是允许用户从中选择的组合框。这些对话框的确切布局和为标准消息类型选择的图标都取决于具体的观感。左侧的图标将由下面5种消息类型决定
ERROR_MESSAGE
INFORMATION_MESSAGE
WARNINC_MESSAGE
QUESTION_MESSAGE
PLAIN_MESSAGE
PLAIN_MESSAGE类型没有图标。每个对话框类型都有一个方法,可以用来提供自己的图标,以替代原来的图标。可以为每个对话框类型指定一条消息。这里的消息既可以是字符串、图标、用户界面组件,也可以是其他类型的对象。下面是显示消息对象的基本方式:String:Icon:ComponentObject[]:绘制字符串显示图标显示组件显示数组中的所有对象,依次叠加,任何其他对象:调用toString方法来显示结果字符串。
当然,提供字符串消息是最常见的情况,而提供一个Component会带来更大的灵活性。这是因为通过调用paintComponent方法可以绘制自己想要的任何内容。位于底部的按钮取决于对话框类型和选项类型。当调用showMessageDialog和showInputDialog时,只能看到一组标准按钮(分别是OK/Cancel)。当调用showConfirmDialog时,可以选择下面四种选项类型之一:
DEFAULL0PTI0N
YES_NO_OPTION
YES_N0_CANCEL_0PTI0N
OK_CANCELJPTION
使用showOptionDialog可以指定任意的选项。这里需要为选项提供一个对象数组。每个数组元素可以是下列类型之一:
String:使用字符串标签创建一个按钮Icon:使用图标创建一个按钮Component:显示这个组件
其他类型的对象:使用toString方法然后用结果字符串作为标签创建按钮。showConfirmDialog和showOptionDialog返回一个整数用来表示用户选择了哪个按钮。对于选项对话框来说,这个值就是被选的选项的索引值或者是CLOSED_OPTION(此时用户没有选择可选项,而是关闭了对话框)。
这些选项似