事件源、监听器和注册监听器 事件源(如:各种组件和容器)是一个生成事件 的对象 事件源是一个对象,它可以注册一个或多个监听 器对象,并向监听器发送事件对象。 个事件源可能会生成不同类型的事件。 事件源提供了一组方法,用于为事件注册一个或 多个监听器。 每种事件的类型都有其自己的注册方法。一般形 式为: public void add<EventType> Listener(TypeListener e (也称为向事件源添加监听器) Designed by Chiyong C2005
6 Designed by Chiyong,©2005 • 事件源(如:各种组件和容器)是一个生成事件 的对象 • 事件源是一个对象,它可以注册一个或多个监听 器对象,并向监听器发送事件对象。 • 一个事件源可能会生成不同类型的事件。 • 事件源提供了一组方法,用于为事件注册一个或 多个监听器。 • 每种事件的类型都有其自己的注册方法。一般形 式为: public void add<EventType>Listener (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