8.1.1 委托式事件处理模式

8.1.1 委托式事件处理模式

通常元件触发事件时,Java就请指定的对象来处理,这种方式称为委托式事件处理模式。

这种处理模式是个别元件将整个事件处理的责任委托给特定的对象,当该元件发生指定的事件时,就通知所委托的对象,由这个对象来处理这个事件。这个委托处理事件的对象称为事件倾听对象(event listener),每一个元件都可以针对特定的事件指定一个或多个事件倾听对象,由这些事件倾听对象负责处理事件。如图8-1所示:

img327

图8-1 AWT元件与事件倾听对象的关系

整个委托事件模型由产生事件的对象、事件对象和监听者对象之间的关系所组成。

产生事件的对象会在事件产生时,将与该事件相关的信息封装在事件对象中,并将该对象传递给监听者对象,监听者对象根据该事件对象内的信息决定适当的处理方式。监听者对象要受到事件发生的通知,必须在程序中向产生事件的对象注册,当事件处理时,产生事件的对象就像会主动通知监听者对象,监听者对象根据产生该事件的对象来决定处理事件的方法。监听者对象就是用来处理事件的对象,它等候事件的发生,并在事件发生时接收到通知。

在AWT中AWTEvent的类是所有事件的父类,它继承自EventObject类,EventObject类又继承自Object类,其继承关系如图8-2所示:

img328

图8-2 java.awt.event套件中事件类的继承关系