java_ch8

上传人:油条 文档编号:48841074 上传时间:2018-07-21 格式:PPT 页数:49 大小:1.89MB
返回 下载 相关 举报
java_ch8_第1页
第1页 / 共49页
java_ch8_第2页
第2页 / 共49页
java_ch8_第3页
第3页 / 共49页
java_ch8_第4页
第4页 / 共49页
java_ch8_第5页
第5页 / 共49页
点击查看更多>>
资源描述

《java_ch8》由会员分享,可在线阅读,更多相关《java_ch8(49页珍藏版)》请在金锄头文库上搜索。

1、第第 8 8 章章 JavaJava的图形用户界面的图形用户界面* *JavaJava面向对象程序设计教程面向对象程序设计教程2 2主要内容主要内容n n8.1 JFC8.1 JFC的组成的组成 8.1.1 AWT8.1.1 AWT 8.1.2 Swing8.1.2 Swing 8.1.3 Drag and Drop8.1.3 Drag and Drop 8.1.4 Java 2D8.1.4 Java 2D 8.1.5 Java Accessibility8.1.5 Java Accessibilityn n8.2 8.2 应用程序和小程序界面图形化应用程序和小程序界面图形化 8.2.1 Sw

2、ing8.2.1 Swing的根面板的根面板 8.2.2 8.2.2 小程序的典型例子小程序的典型例子 8.2.3 8.2.3 应用程序的典型例子应用程序的典型例子 8.2.4 8.2.4 结合小程序和应用程序的典型例子结合小程序和应用程序的典型例子n n8.3 AWT8.3 AWT的组件布局管理模型的组件布局管理模型 8.3.1 8.3.1 基于策略模式的授权模型基于策略模式的授权模型 8.3.2 8.3.2 布局管理器类布局管理器类n n8.4 AWT8.4 AWT的事件处理模型的事件处理模型 8.4.1 8.4.1 基于观察者模式的授权模型基于观察者模式的授权模型 8.4.2 8.4.2

3、 事件源事件源 8.4.3 8.4.3 事件类事件类 8.4.4 8.4.4 事件监听器事件监听器 8.4.5 8.4.5 创建事件监听器对象创建事件监听器对象8.1 JFC8.1 JFC的组成的组成* *JavaJava面向对象程序设计教程面向对象程序设计教程4 4JavaJava基础类基础类n nJava Foundation Java Foundation ClassesClasses,JFCJFC n nJFCJFC由由5 5个个APIAPI组成:组成: AWTAWT、SwingSwing、Java Java 2D2D、Drag and DropDrag and Drop 和和Acce

4、ssibility Accessibility * *JavaJava面向对象程序设计教程面向对象程序设计教程5 5基于对等组件的基于对等组件的AWT AWT n nAWTAWT(Abstract Window ToolkitAbstract Window Toolkit)是一个独立)是一个独立 平台的窗口工具组件集,它依赖于对等组件(平台的窗口工具组件集,它依赖于对等组件( PeerPeer),而对等组件是一种本地),而对等组件是一种本地GUIGUI组件,由组件,由 AWTAWT类管理。类管理。n nAWTAWT的作用是给用户提供基本的界面组件,如按的作用是给用户提供基本的界面组件,如按 钮

5、、列表、菜单等等。钮、列表、菜单等等。 n nAWTAWT组件中,包含有对其对等组件的大量实用操组件中,包含有对其对等组件的大量实用操 作,而作,而AWTAWT类仅仅是对等组件外围的包装与操作类仅仅是对等组件外围的包装与操作 工具,因此,对等组件可以快速产生一个工具,因此,对等组件可以快速产生一个GUIGUI工工 具组件。具组件。n n对于最初的对于最初的AWTAWT,其开发组只用了不到,其开发组只用了不到6 6个星期个星期 的时间,但存在大量的缺陷。的时间,但存在大量的缺陷。 * *JavaJava面向对象程序设计教程面向对象程序设计教程6 6重量组件重量组件n nAWTAWT最初只包括与本

6、地对等组件相关联的最初只包括与本地对等组件相关联的 组件,称为重量组件(组件,称为重量组件(Heavyweight Heavyweight componentcomponent)。)。n n这些组件在它们自己的本地不透明窗口中这些组件在它们自己的本地不透明窗口中 绘制,这样使用将花费昂贵的代价,而且绘制,这样使用将花费昂贵的代价,而且 在更改其默认行为时,不可以为其扩展子在更改其默认行为时,不可以为其扩展子 类。类。n n它们必须是矩形的,而且不能有透明的背它们必须是矩形的,而且不能有透明的背 景。景。 * *JavaJava面向对象程序设计教程面向对象程序设计教程7 7轻量组件轻量组件n n

7、在在AWT 1.1AWT 1.1版本中引入版本中引入 。n n轻量组件直接扩展了轻量组件直接扩展了java.awt.Componentjava.awt.Component或或 java.awt.Containerjava.awt.Container。n n轻量组件没有本地对等组件,它不在本地不透明窗口中绘轻量组件没有本地对等组件,它不在本地不透明窗口中绘 制,而是在它们的重量容器窗口中绘制。制,而是在它们的重量容器窗口中绘制。n n轻量组件不会导致与它们关联的不透明窗口的性能损失,轻量组件不会导致与它们关联的不透明窗口的性能损失, 而且还可以有透明的背景。而且还可以有透明的背景。n n透明的背

8、景使显示的轻量组件可以是非矩形的,虽然所有透明的背景使显示的轻量组件可以是非矩形的,虽然所有 组件(重量的或轻量的)都有一个矩形边框。组件(重量的或轻量的)都有一个矩形边框。n n在轻量组件的容器中必须有一个是重量组件,否则无法在在轻量组件的容器中必须有一个是重量组件,否则无法在 窗口内绘制轻量组件。窗口内绘制轻量组件。 * *JavaJava面向对象程序设计教程面向对象程序设计教程8 8AWTAWT组件的分类组件的分类n njava.awt.Componentjava.awt.Component 菜单、按钮、标签、列表等组件的抽象基本类,菜单、按钮、标签、列表等组件的抽象基本类,AWTAWT

9、中大约有一半的中大约有一半的 类是从它这里扩展出来的。类是从它这里扩展出来的。n njava.awt.Containerjava.awt.Container 扩展扩展ComponentComponent的抽象基本类。在容器中可以包含多个组件,我们的抽象基本类。在容器中可以包含多个组件,我们 可以使用容器将相关组件组合成一个整体,以简化程序可以使用容器将相关组件组合成一个整体,以简化程序GUIGUI的设计,的设计, 同时有利于组件的显示安排。由同时有利于组件的显示安排。由ContainerContainer演变出来的类有演变出来的类有PanelPanel、 AppletApplet、Window

10、Window、DialogDialog和和FrameFrame等。等。n njava.awt.LayoutManagerjava.awt.LayoutManager和和java.awt.LayoutManager2java.awt.LayoutManager2 定义容器中组件位置和尺寸方法的接口。定义容器中组件位置和尺寸方法的接口。JavaJava中定义了几种默认的布中定义了几种默认的布 局管理器,如局管理器,如FlowLayoutFlowLayout、BorderLayoutBorderLayout、CardLayoutCardLayout、 GridLayoutGridLayout和和Gr

11、idBagLayoutGridBagLayout等等n njava.awt.Graphicsjava.awt.Graphics 定义组件内图形操作的基本类,每个组件都有一个相关的图形对象。定义组件内图形操作的基本类,每个组件都有一个相关的图形对象。* *JavaJava面向对象程序设计教程面向对象程序设计教程9 9SwingSwing和和AWTAWT的关系的关系 n nSwingSwing是用来替代是用来替代AWTAWT的重量组件,而不是用来替代的重量组件,而不是用来替代AWTAWT本身。本身。 n nSwingSwing使用使用AWTAWT最好的部分来建立一个新的轻量组件集,并且丢弃了最好的

12、部分来建立一个新的轻量组件集,并且丢弃了 AWTAWT中有问题的重量组件部分。中有问题的重量组件部分。n nSwingSwing利用了利用了AWTAWT的底层组件,包括图形、颜色、字体、工具包和布的底层组件,包括图形、颜色、字体、工具包和布 局管理器。局管理器。n nSwingSwing没有使用没有使用AWTAWT的顶层组件,除了的顶层组件,除了FrameFrame、WindowWindow和和DialogDialog 类,它们分别被类,它们分别被SwingSwing的重量组件的重量组件JFrameJFrame、JWindowJWindow和和JDialogJDialog所所 扩展。扩展。*

13、*JavaJava面向对象程序设计教程面向对象程序设计教程1010插入式界面样式插入式界面样式 n nSwingSwing支持插入式界面样式(支持插入式界面样式(Pluggable Look-Pluggable Look- and-Feeland-Feel),它的基础是模型视图控制(),它的基础是模型视图控制( Model-View-ControllerModel-View-Controller,MVCMVC)架构。)架构。 n nSwingSwing组件的代理是组件的代理是ComponentUIComponentUI类的一个扩类的一个扩 展,它是展,它是SwingSwing工具包中的一个工具

14、包中的一个JavaJava类,其中定类,其中定 义了所有义了所有UIUI代理的公共行为,这些行为可以在扩代理的公共行为,这些行为可以在扩 展组件中进行修改。展组件中进行修改。 n n对于插入式界面样式,对于插入式界面样式,SwingSwing组件的组件的UIUI代理负责代理负责 显示组件和处理输入事件的视图控制器。显示组件和处理输入事件的视图控制器。n n当当SwingSwing组件配备了一个修改过的组件组件配备了一个修改过的组件UIUI时,组时,组 件的可视外观或事件处理都是可以修改的。件的可视外观或事件处理都是可以修改的。 * *JavaJava面向对象程序设计教程面向对象程序设计教程11

15、11插入式界面样式举例:插入式界面样式举例: StyleChooser.java StyleChooser.java * *JavaJava面向对象程序设计教程面向对象程序设计教程1212SwingSwing包包 n njavax.swingjavax.swing SwingSwing组件和实用工具。组件和实用工具。n njavax.swing.borderjavax.swing.border SwingSwing轻量组件的边框。轻量组件的边框。n njavax.swing.colorchooserjavax.swing.colorchooser JColorChooserJColorChoo

16、ser的支持类的支持类/ /接口。接口。n njavax.swing.eventjavax.swing.event 事件和监听器类。事件和监听器类。n njavax.swing.filechooserjavax.swing.filechooser JFileChooserJFileChooser的支持类的支持类/ /接口。接口。n njavax.swing.plafjavax.swing.plaf 抽象类,它定义抽象类,它定义UIUI代理的行为。代理的行为。n njavax.swing.plaf.basicjavax.swing.plaf.basic 实现所有标准界面样式公共功能的基类。实现所有标准界面样式公共功能的基类。n njavax.swing.plaf.metaljavax.swing.plaf.metal 用户界面代理类,它们实现用户界面代理类,它们实现MetalMetal界面样式。界面样式。n njavax.sw

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号