欢迎来到天天文库
浏览记录
ID:9881298
大小:1.89 MB
页数:49页
时间:2018-05-11
《java第 8 章 java的图形用户界面》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第8章Java的图形用户界面2021/10/4Java面向对象程序设计教程2主要内容8.1JFC的组成8.1.1AWT8.1.2Swing8.1.3DragandDrop8.1.4Java2D8.1.5JavaAccessibility8.2应用程序和小程序界面图形化8.2.1Swing的根面板8.2.2小程序的典型例子8.2.3应用程序的典型例子8.2.4结合小程序和应用程序的典型例子8.3AWT的组件布局管理模型8.3.1基于策略模式的授权模型8.3.2布局管理器类8.4AWT的事件处理模型8.4.1基于观察者模式的授权模型8.4.2事件源8.4.3事件类8
2、.4.4事件监听器8.4.5创建事件监听器对象8.1JFC的组成2021/10/4Java面向对象程序设计教程4Java基础类JavaFoundationClasses,JFCJFC由5个API组成:AWT、Swing、Java2D、DragandDrop和Accessibility2021/10/4Java面向对象程序设计教程5基于对等组件的AWTAWT(AbstractWindowToolkit)是一个独立平台的窗口工具组件集,它依赖于对等组件(Peer),而对等组件是一种本地GUI组件,由AWT类管理。AWT的作用是给用户提供基本的界面组件,如按钮、列表、
3、菜单等等。AWT组件中,包含有对其对等组件的大量实用操作,而AWT类仅仅是对等组件外围的包装与操作工具,因此,对等组件可以快速产生一个GUI工具组件。对于最初的AWT,其开发组只用了不到6个星期的时间,但存在大量的缺陷。2021/10/4Java面向对象程序设计教程6重量组件AWT最初只包括与本地对等组件相关联的组件,称为重量组件(Heavyweightcomponent)。这些组件在它们自己的本地不透明窗口中绘制,这样使用将花费昂贵的代价,而且在更改其默认行为时,不可以为其扩展子类。它们必须是矩形的,而且不能有透明的背景。2021/10/4Java面向对象程序
4、设计教程7轻量组件在AWT1.1版本中引入。轻量组件直接扩展了java.awt.Component或java.awt.Container。轻量组件没有本地对等组件,它不在本地不透明窗口中绘制,而是在它们的重量容器窗口中绘制。轻量组件不会导致与它们关联的不透明窗口的性能损失,而且还可以有透明的背景。透明的背景使显示的轻量组件可以是非矩形的,虽然所有组件(重量的或轻量的)都有一个矩形边框。在轻量组件的容器中必须有一个是重量组件,否则无法在窗口内绘制轻量组件。2021/10/4Java面向对象程序设计教程8AWT组件的分类java.awt.Component菜单、按钮
5、、标签、列表等组件的抽象基本类,AWT中大约有一半的类是从它这里扩展出来的。java.awt.Container扩展Component的抽象基本类。在容器中可以包含多个组件,我们可以使用容器将相关组件组合成一个整体,以简化程序GUI的设计,同时有利于组件的显示安排。由Container演变出来的类有Panel、Applet、Window、Dialog和Frame等。java.awt.LayoutManager和java.awt.LayoutManager2定义容器中组件位置和尺寸方法的接口。Java中定义了几种默认的布局管理器,如FlowLayout、Borde
6、rLayout、CardLayout、GridLayout和GridBagLayout等java.awt.Graphics定义组件内图形操作的基本类,每个组件都有一个相关的图形对象。2021/10/4Java面向对象程序设计教程9Swing和AWT的关系Swing是用来替代AWT的重量组件,而不是用来替代AWT本身。Swing使用AWT最好的部分来建立一个新的轻量组件集,并且丢弃了AWT中有问题的重量组件部分。Swing利用了AWT的底层组件,包括图形、颜色、字体、工具包和布局管理器。Swing没有使用AWT的顶层组件,除了Frame、Window和Dialog
7、类,它们分别被Swing的重量组件JFrame、JWindow和JDialog所扩展。2021/10/4Java面向对象程序设计教程10插入式界面样式Swing支持插入式界面样式(PluggableLook-and-Feel),它的基础是模型-视图-控制(Model-View-Controller,MVC)架构。Swing组件的代理是ComponentUI类的一个扩展,它是Swing工具包中的一个Java类,其中定义了所有UI代理的公共行为,这些行为可以在扩展组件中进行修改。对于插入式界面样式,Swing组件的UI代理负责显示组件和处理输入事件的视图-控制器。当
8、Swing组件配备了一个
此文档下载收益归作者所有