文档介绍:AWT 事件模型
第七章
回顾
抽象窗口工具包(AWT)是一组类,用来创建图形用户界面,并能够通过键盘和鼠标响应用户的操作。
两种常用容器类:框架(Frame类)和面板(Panel类)
AWT支持下列类型的组件:标签、文本域、文本区、按钮、复选框、列表框等。
布局管理器类提供控制 GUI 组件物理布局的一种方式。
2
目标
事件控制的要点
AWT 事件结构
基本事件控制
使用多个监听器
匿名类
3
事件控制的要点
Java 最新的事件处理方法是基于授权事件模型
事件源生成事件并将其发送至一个或多个监听器
监听器简单地等待,直到它收到一个事件。一旦事件被接受,监听器将处理这些事件,然后返回。
4
事件
在授权事件模型中,事件是一个描述事件源状态改变的对象。
通过鼠标、键盘与 GUI 界面直接或间接交互都会生成事件。如:按下一个按钮、通过键盘输入一个字符、选择列表框中的一项、点击一下鼠标等。
5
事件源
事件源是一个生成事件的对象
一个事件源可能会生成不同类型的事件
事件源提供了一组方法,用于为事件注册一个或多个监听器。
每种事件的类型都有其自己的注册方法。一般形式为:
public void add<EventType>Listener (TypeListener e)
6
AWT采取的事件控制过程
监听器对象属于一个类的实例,这个类实现了一个特殊的接口,名为“监听者接口”
事件源是一个对象,它可以注册一个或多个监听器对象,并向其发送事件对象。
事件源将在发生事件时向所有注册的监听器发送事件对象。
监听器对象使用事件对象中的信息来确定它们对事件的响应。
7
按钮单击事件示例
public class MyEventTest extends Panel {
Button myButton = new Button("蓝色");
. . . // 创建面板或其他 GUI 组件
MyListener myAction = new MyListener();
(myAction);
 private class MyListener implements ActionListener {
public MyListener() {
. . . // 初始化
}
public void actionPerformed(ActionEvent event) {
. . .//需要为事件进行的操作
}
}
}
实现了ActionListener接口的监听器
实现了actionPerformed方法,以便根据参数 ActionEvent 对象的信息对事件做出响应
为按钮事件
注册监听器
8
事件体系结构
FocusEvent
AWTEvent
ActionEvent
AdjustmentEvent
ComponentEvent
TextEvent
ItemEvent
ContainerEvent
InputEvent
WindowEvent
PaintEvent
KeyEvent
MouseEvent
EventObject
9
AWT 事件类型 2-1
事件类
说明
事件源
ActionEvent
通常按下按钮,双击列表项或选中一个菜单项时,就会生成此事件。
Button、List、MenuItem、TextField
AdjustmentEvent
操纵滚动条时会生成此事件。
Scrollbar
ComponentEvent
当一个组件移动、隐藏、调整大小或成为可见时会生成此事件。
Component
ItemEvent
单击复选框或列表项时,或者当一个选择框或一个可选菜单的项被选择或取消时生成此事件。
Checkbox、CheckboxMenuItem、Choice、List
FocusEvent
组件获得或失去键盘焦点时会生成此事件。
Component
10