第11章Java基础类 DK1.2提供了Java基础类,其中的一部分就是 Swing swing是构筑在AWT上层的一些组件的集 合(为了保证平台独立性,它是用100%的纯Java编写)。本模块介绍了JFC和 Swing图形用户界面的实 现 The Jae programming l G吃t bject- Oriented P ro gramming Yd au Exception Handling wtd想 ponert lter Multith 第一节相关问题 讨论一以下为与本模块内容有关的问题 AWT本身是非常有用的,它是一个新的类集合的一部分。这个新的类集合称为Java基础类 (JFC),它作为一个整体,将GUI提升到了一个新的水平层次。JC究竟是什么,特别地,什 么是 Swing?什么事 Swing可以做但AWT不能? 第二节目标 在完成了本模块的学习后,你应当能够 认识Java基础类的关键特性 描述 com. sun java swing包的关键特性 认识 Swing组件 定义容器和组件,并解释如何联合使用它们来构造一个 Swing gu 编写,编译并运行一个基本的 Swing应用程序 高效地使用诸如 Jframe和 Japplet等顶层容器
104 第11章 Java 基础类 JDK1.2 提供了 Java 基础类,其中的一部分就是 Swing。Swing 是构筑在 AWT 上层的一些组件的集 合(为了保证平台独立性,它是用 100%的纯 Java 编写)。本模块介绍了 JFC 和 Swing 图形用户界面的实 现。 第一节 相关问题 讨论-以下为与本模块内容有关的问题: ⚫ AWT 本身是非常有用的,它是一个新的类集合的一部分。这个新的类集合称为 Java 基础类 (JFC),它作为一个整体,将 GUI 提升到了一个新的水平层次。JFC 究竟是什么,特别地,什 么是 Swing?什么事 Swing 可以做但 AWT 不能? 第二节 目 标 在完成了本模块的学习后,你应当能够: ⚫ 认识 Java 基础类的关键特性 ⚫ 描述 com.sun.java.swing 包的关键特性 ⚫ 认识 Swing 组件 ⚫ 定义容器和组件,并解释如何联合使用它们来构造一个 Swing GUI ⚫ 编写,编译并运行一个基本的 Swing 应用程序 ⚫ 高效地使用诸如 Jframe 和 Japplet 等顶层容器
参考文献 以下参考文献可提供有关本模块论题的其他细节内容: The Java Tutorial,这是 Sun Microsystems的一本在线教材,可以从 htt/liava.sun.com/docs/books/tutorial得到 第三节介绍 介绍 Java基础类包含5个API AWT Java2D Drag drop ● Swing Java基础类是关于GUI组件和服务的完整集合,它大大简化了健壮Java应用程序的开发和实现。 JFC,作为JDK12的一个有机部分,主要包含5个APl:AWT,Java2D, Accessibility,Drag&Drop Swing。它提供了帮助开发人员设计复杂应用程序的一整套应用程序开发包 正如前面那些模块中所讨论的那样,AWT组件为各类Java应用程序提供了多种GUI工具 Java2D是一图形API,它为Java应用程序提供了一套高级的有关二维(2D)图形图像处理的类。 Java2DAPI扩展了 Java. awt和 jamaat, Image类,并提供了丰富的绘图风格,定义复杂图形的机制和精 心调节绘制过程的方法和类。这些API使得独立于平台的图形应用程序的开发更加简便 Accessibility API提供了一套高级工具,用以辅助开发使用非传统输入和输出的应用程序。它提供了 个辅助的技术接口,如:屏幕阅读器,屏幕放大器,听觉文本阅读器(语音处理)等等 Drag&Drop技术提供了Java和本地应用程序之间的互操作性,用来在Java应用程序和不支持Java 技术的应用程序之间交换数据。 FC模块的重点在 Swing。 Swing用来进行基于窗口的应用程序开发,它提供了一套丰富的组件和工 作框架,以指定GUI如何独立于平台地展现其视觉效果。 1131 Swing介绍 Swing介绍 ●可插的外观和感觉 应用程序看上去是与平台有关的 有客户化的 Swing组件 · Swing的体系结构 它是围绕着实现AWT各个部分的API构筑的 大多数组件不象AWT那样使用与平台相关的 实现 Swing提供了一整套GUI组件,为了保证可移植性,它是完全用Java语言编写的。 可插的外观和感觉 可插的外观和感觉使得开发人员可以构建这样的应用程序:它们可以在任何平台上执行,而且看上 去就象是专门为那个特定的平台而开发的。一个在 Windows环境中执行的程序,似乎是专为这个环境而
105 参考文献 以下参考文献可提供有关本模块论题的其他细节内容: ⚫ The Java Tutorial ,这是 Sun Microsystems 的一本在线教材,可以从 http://java.sun.com/docs/books/tutorial 得到。 第三节 介 绍 Java 基础类是关于 GUI 组件和服务的完整集合,它大大简化了健壮 Java 应用程序的开发和实现。 JFC,作为 JDK1.2 的一个有机部分,主要包含 5 个 API:AWT,Java2D,Accessibility,Drag & Drop, Swing。它提供了帮助开发人员设计复杂应用程序的一整套应用程序开发包。 正如前面那些模块中所讨论的那样,AWT 组件为各类 Java 应用程序提供了多种 GUI 工具。 Java2D 是一图形 API,它为 Java 应用程序提供了一套高级的有关二维(2D)图形图像处理的类。 Java2D API 扩展了 java.awt 和 java.awt. image 类,并提供了丰富的绘图风格,定义复杂图形的机制和精 心调节绘制过程的方法和类。这些 API 使得独立于平台的图形应用程序的开发更加简便。 Accessibility API 提供了一套高级工具,用以辅助开发使用非传统输入和输出的应用程序。它提供了 一个辅助的技术接口,如:屏幕阅读器,屏幕放大器,听觉文本阅读器(语音处理)等等。 Drag & Drop 技术提供了 Java 和本地应用程序之间的互操作性,用来在 Java 应用程序和不支持 Java 技术的应用程序之间交换数据。 JFC 模块的重点在 Swing。Swing 用来进行基于窗口的应用程序开发,它提供了一套丰富的组件和工 作框架,以指定 GUI 如何独立于平台地展现其视觉效果。 11.3.1 Swing 介绍 Swing 提供了一整套 GUI 组件,为了保证可移植性,它是完全用 Java 语言编写的。 可插的外观和感觉 可插的外观和感觉使得开发人员可以构建这样的应用程序:它们可以在任何平台上执行,而且看上 去就象是专门为那个特定的平台而开发的。一个在 Windows 环境中执行的程序,似乎是专为这个环境而 介绍 ⚫ Java 基础类包含 5 个 API ⚫ AWT ⚫ Java2D ⚫ Accessibility ⚫ Drag & Drop ⚫ Swing Swing 介绍 ⚫ 可插的外观和感觉 ⚫ 应用程序看上去是与平台有关的 ⚫ 有客户化的 Swing 组件 ⚫ Swing 的体系结构 ⚫ 它是围绕着实现 AWT 各个部分的 API 构筑的 ⚫ 大多数组件不象 AWT 那样使用与平台相关的 实现
开发的;而同样的程序在Unx平台上执行,它的行为又似乎是专为Unix环境开发的 开发人员可以创建自己的客户化Swng组件,带有他们想设计出的任何外观和感觉。这增加了用于 跨平台应用程序和Aplt的可靠性和一致性。一个完整应用程序的GUI可以在运行时刻从一种外观和 感觉切换到另一种 wing的体系结构 与AWT比较, Swing提供了更完整的组件,引入了许多新的特性和能力。 Swing ap是围绕着实现 MT各个部分的API构筑的。这保证了所有早期的AWT组件仍然可以使用。AWT采用了与特定平台 相关的实现,而绝大多数Swng组件却不是这样做的,因此 Swing的外观和感觉是可客户化和可插的 Your Application Swing Components window Dialog Java 2D Frame Drag and Drop ScrollBar Fon t Color Graphics A。 possibility AWT JFC 上图显示了JFC各个部分之间的相互关系。Java2D, Accessibility,Drag&Drop,和 Accessibility API 是AWT和JFC的一部分,但它们不属于 Swing。这是因为,这些组件使用了一些本地代码,而 Swing 却不是这样的 Swing是围绕着一个称为 JComponent的新组件构建的,而 JComponent则由AWT的容器类扩展而 来 Swing的层次结构 下图说明了 Swing组件的层次结构
106 开发的;而同样的程序在 Unix 平台上执行,它的行为又似乎是专为 Unix 环境开发的。 开发人员可以创建自己的客户化 Swing 组件,带有他们想设计出的任何外观和感觉。这增加了用于 跨平台应用程序和 Applet 的可靠性和一致性。一个完整应用程序的 GUI 可以在运行时刻从一种外观和 感觉切换到另一种。 Swing 的体系结构 与 AWT 比较,Swing 提供了更完整的组件,引入了许多新的特性和能力。Swing API 是围绕着实现 AWT 各个部分的 API 构筑的。这保证了所有早期的 AWT 组件仍然可以使用。AWT 采用了与特定平台 相关的实现,而绝大多数 Swing 组件却不是这样做的,因此 Swing 的外观和感觉是可客户化和可插的。 上图显示了 JFC 各个部分之间的相互关系。Java2D,Accessibility,Drag & Drop,和 Accessibility API 是 AWT 和 JFC 的一部分,但它们不属于 Swing。这是因为,这些组件使用了一些本地代码,而 Swing 却不是这样的。 Swing 是围绕着一个称为 JComponent 的新组件构建的,而 JComponent 则由 AWT 的容器类扩展而 来。 Swing 的层次结构 下图说明了 Swing 组件的层次结构:
java.awt, Container co, sun java swing JComponent JTextcomponent JTextArea JTextField PasswordField Htmledite JToggleButton jCheck Box Combobox Button RAdiobUtton Menuitem JRadioButtonMenultem heck BoxMenultem MEnubAr JMenu JScrollBar jScrollPane Slider JProgressBar RootPane jSplitPane TabbedPane Swing guI使用两种类型的类,即GUI类和非GUI支持类。GUI类是可视的,它从 JComponent继 承而来,因此称为“J”类。非GUI类为GUI类提供服务,并执行关键功能:因此它们不产生任何可视 的输出 注- Swing的事件处理类是非GU|类的一例。 wing组件 Swing组件主要为文本处理、按钮、标签、列表、pane、组合框、滚动条、滚动pane、菜单、表格 和树提供了组件。其中一些组件如下所示 Rp e Radio 2 nIng OK JApplet Sclect an Option Monday (?)s Thursday Cance Fray J ComboBox
107 Swing GUI 使用两种类型的类,即 GUI 类和非 GUI 支持类。GUI 类是可视的,它从 JComponent 继 承而来,因此称为“J”类。非 GUI 类为 GUI 类提供服务,并执行关键功能;因此它们不产生任何可视 的输出。 注-Swing 的事件处理类是非 GUI 类的一例。 Swing 组件 Swing 组件主要为文本处理、按钮、标签、列表、pane、组合框、滚动条、滚动 pane、菜单、表格 和树提供了组件。其中一些组件如下所示: JApplet JButton JComboBox JOptionPane
January Label I JList J Label Swing组件(续) First Na. Last Name) Home Search Gu Chi Jeff Linkin JScrollPane J Table D tabs.gif o Tree view D treeview TOoltip JTree 第四节基本的 Swing应用程序 HelloSwing应用程序的输出产生下图所示的窗口: alloWing I am a Swing button Number of button clicks: 4 每次用户点击按钮时,标签就会更新。 11.5.1 HelloSwing
108 JList JLabel Swing 组件(续) JScrollPane JTable JScrollBar JSlider JTooltip JTree 第四节 基本的 Swing 应用程序 HelloSwing 应用程序的输出产生下图所示的窗口: 每次用户点击按钮时,标签就会更新。 11.5.1 HelloSwing