Java2网络编程基础 第七章 AWT事件模型 Designed by Chiyong C2005
1 Designed by Chiyong,©2005 Java2 网络编程基础 AWT 事件模型 第七章
回顾 抽象窗口工具包(AWT)是一组类,用来创 建图形用户界面,并能够通过键盘和鼠标 响应用户的操作。 >两种常用容器类:框架( Frame类)和面板 ( Panel类) AT支持下列类型的组件:标签、文本域 文本区、按钮、复选框、列表框等。 布局管理器类提供控制GUI组件物理布局 的一种方式。 Designed by Chiyong C2005
2 Designed by Chiyong,©2005 回顾 ➢抽象窗口工具包(AWT)是一组类,用来创 建图形用户界面,并能够通过键盘和鼠标 响应用户的操作。 ➢两种常用容器类:框架(Frame类)和面板 (Panel类) • AWT支持下列类型的组件:标签、文本域、 文本区、按钮、复选框、列表框等。 • 布局管理器类提供控制 GUI 组件物理布局 的一种方式
目标 事件控制的要点 AWT事件结构 基本事件控制 使用多个监听器 匿名类 Designed by Chiyong C2005
3 Designed by Chiyong,©2005 目标 • 事件控制的要点 • AWT 事件结构 • 基本事件控制 • 使用多个监听器 • 匿名类
Java的基于授权的事件模型 >Java最新的事件处理方法是基于授权事 件模型 事件源生成事件并将其发送至一个或多个 监听器 >监听器简单地等待,直到它收到一个事件 旦事件被接受,监听器将处理这些事件 然后返回。 以下内容参照示例> Designed by Chiyong C2005
4 Designed by Chiyong,©2005 Java的基于授权的事件模型 ➢Java 最新的事件处理方法是基于授权事 件模型 ➢事件源生成事件并将其发送至一个或多个 监听器 ➢监听器简单地等待,直到它收到一个事件。 一旦事件被接受,监听器将处理这些事件, 然后返回。 以下内容参照示例>>
事件 在授权事件模型中,事件是一个描述事件 源状态改变的对象。 通过鼠标、键盘与GU界面直接或间接交 互都会生成事件。如:按下一个按钮 通过键盘输入一个字符、选择列表框中的 一项、点击一下鼠标等 Designed by Chiyong C2005
5 Designed by Chiyong,©2005 事件 • 在授权事件模型中,事件是一个描述事件 源状态改变的对象。 • 通过鼠标、键盘与GUI 界面直接或间接交 互都会生成事件。如:按下一个按钮、 通过键盘输入一个字符、选择列表框中的 一项、点击一下鼠标等
事件源、监听器和注册监听器 事件源(如:各种组件和容器)是一个生成事件 的对象 事件源是一个对象,它可以注册一个或多个监听 器对象,并向监听器发送事件对象。 个事件源可能会生成不同类型的事件。 事件源提供了一组方法,用于为事件注册一个或 多个监听器。 每种事件的类型都有其自己的注册方法。一般形 式为: public void add Listener(TypeListener e (也称为向事件源添加监听器) Designed by Chiyong C2005
6 Designed by Chiyong,©2005 • 事件源(如:各种组件和容器)是一个生成事件 的对象 • 事件源是一个对象,它可以注册一个或多个监听 器对象,并向监听器发送事件对象。 • 一个事件源可能会生成不同类型的事件。 • 事件源提供了一组方法,用于为事件注册一个或 多个监听器。 • 每种事件的类型都有其自己的注册方法。一般形 式为: public void addListener (TypeListener e) (也 称为向事件源添加监听器) 事件源、监听器和注册监听器
监听器接口方法和awt事件处理过程 事件源描述事件对象中事件的性质。 2.每个事件源都被映射至一个或多个事件监 听器,发生事件时需要调用这些事件监听 3.事件发生后,事件源将事件对象传递至监 听器进行处理 4.监听器分析事件对象找出事件信息,以便 根据事件类的类型给出相应的响应(即交 给相应的监听器接口方法进行处理) Designed by Chiyong C2005
7 Designed by Chiyong,©2005 监听器接口方法和awt事件处理过程 1. 事件源描述事件对象中事件的性质。 2. 每个事件源都被映射至一个或多个事件监 听器,发生事件时需要调用这些事件监听 器。 3. 事件发生后,事件源将事件对象传递至监 听器进行处理。 4. 监听器分析事件对象找出事件信息,以便 根据事件类的类型给出相应的响应(即交 给相应的监听器接口方法进行处理)
按钮单击事件示例 public class My Event Test extends Panel t Button my Button= new Button("蓝色"); 为按钮事件 /创建面板或其他GUI组件 注册监听器 MyListener myAction= new MyListenero MyButton addActionListener(myAction) private class lIstener implements ActionListener nucleoid enel 0{ 为事件源添加监 实现了 Actionlistener 接口的监听器类 public void actionPerformed (ActionEvent event) .//需要为事件进行的操作 实现了 Actionlistener接口的 action Performed方法,以便根据参数 Action Event事件类对象的信息对事件做 响应 Designed by Chiyong C2005
8 Designed by Chiyong,©2005 按钮单击事件示例 public class MyEventTest extends Panel { Button myButton = new Button("蓝色"); . . . // 创建面板或其他 GUI 组件 MyListener myAction = new MyListener(); MyButton.addActionListener(myAction); private class MyListener implements ActionListener { public MyListener() { . . . // 初始化 } public void actionPerformed(ActionEvent event) { . . .//需要为事件进行的操作 } } } 实现了ActionListener 接口的监听器类 实现了ActionListener接口的 actionPerformed方法,以便根据参数 ActionEvent 事件类对象的信息对事件做 出响应 为按钮事件 注册监听器 为事件源添加监 听器
事件体系结构 Eventobject AWTEvent Action Event Adjustment Event ComponentEvent Item EventTextEvent Container Event Focus Event Input Event Paint Event Window Event I Key Event Event Designed by Chiyong C2005
9 Designed by Chiyong,©2005 事件体系结构 FocusEvent AWTEvent ActionEvent AdjustmentEvent ComponentEvent ItemEvent TextEvent ContainerEvent InputEvent PaintEvent WindowEvent KeyEvent MouseEvent EventObject
AWT事件类型2-1 事件类 说明 事件源 Action Event 通常按下按钮,双击列表项或选 Button、List 中一个菜单项时,就会生成此事 Menuitem、 件 Text Field AdjustmentEvent操纵滚动条时会生成此事件。 Scrollbar ComponentEvent当一个组件移动、隐藏、调整大 Component 小或成为可见时会生成此事件。 Item Event 单击复选框或列表项时,或者当 Checkbox、 个选择框或一个可选菜单的项 Checkbox Menuitem 被选择或取消时生成此事件。 Choice、List Focus Event 组件获得或失去键盘焦点时会生 Component 成此事件。 Designed by Chiyong C2005
10 Designed by Chiyong,©2005 AWT 事件类型 2-1 事件类 说明 事件源 ActionEvent 通常按下按钮,双击列表项或选 中一个菜单项时,就会生成此事 件。 Button、List、 MenuItem、 TextField AdjustmentEvent 操纵滚动条时会生成此事件。 Scrollbar ComponentEvent 当一个组件移动、隐藏、调整大 小或成为可见时会生成此事件。 Component ItemEvent 单击复选框或列表项时,或者当 一个选择框或一个可选菜单的项 被选择或取消时生成此事件。 Checkbox、 CheckboxMenuItem、 Choice、List FocusEvent 组件获得或失去键盘焦点时会生 成此事件。 Component