第七章 AWT组件及事件处理
- 格式:ppt
- 大小:587.00 KB
- 文档页数:59
Java AWT事件处理1 AWT事件处理基本概念AWT事件处理的过程中,主要涉及3类对象。
(1) Event(事件):用户对组件的一个操作,称之为一个事件,以类的形式出现,例如,键盘操作对应的事件类是KeyEvent。
其实例在改事件发生时有系统自动产生。
(2) Event Source(事件源):事件发生的场所,通常就是各个组件,例如按钮Button。
(3) Event Monitor(事件监听器):接收事件对象并对其进行处理的类的对象,通常其中某个成员方法对事件进行相应的处理。
事件委托处理模型图10-10 事件委托处理模型Java采取了事件委托处理模型(Delegation Model),事件源自己不处理事件,而是把在其自身所有可能发生的事件委托给事件监听器来处理。
比如,在Canvas对象上既可能发生鼠标事件,也可能发生键盘事件,该Canvas对象就可以委托给事件监听器1来处理鼠标事件,同时委托给事件监听器2来处理键盘事件。
委托模型把事件的处理委托给外部的处理实体进行处理,实现了将事件源和监听器分开的机制。
2 事件事件分类。
按事件的性质分类java.util.EventObject类是所有事件对象的基础父类,所有事件都是由它派生出来的。
AWT的相关事件继承于java.awt.AWTEvent类,这些AWT事件分为两大类:低级事件和高级事件。
(1)低级事件低级事件是指基于组件和容器的事件,当一个组件上发生事件,如鼠标的进入、点击、拖放等,或组件的窗口开关等时,触发了组件事件。
—ComponentEvent(组件事件:组件尺寸的变化、移动);—ContainerEvent(容器事件:组件增加、移动);—WindowEvent(窗口事件:关闭窗口、窗口闭合、图标化);—FocusEvent(焦点事件:焦点的获得和丢失);—KeyEvent(键盘事件:键按下、释放);—MouseEvent(鼠标事件:鼠标单击、移动)。
AWT事件处理机制在事件处理的过程中主要涉及3类对象1.事件,⽤户对界⾯操作在Java语⾔上的描述以类的形式出现,例如键盘操作对应的事件类是KeyEvent2.事件源,事件发⽣的场所,通常是各个组件,例如按钮Button3.事件处理者,接收事件对象并对其进⾏处理的对象同⼀个事件源可能发⽣多种事件,所以Java采取授权处理机制,事件源把⾃⾝可能发⽣的事件分别授权给不同的事件处理者进⾏处理。
有时也将事件处理者称为监听器,因为监听器时刻监听事件源发⽣的事件类型,如果该事件类型与⾃⼰所负责处理的事件类型⼀致,就马上进⾏处理授权模型把事件的处理委托给外部处理实体进⾏处理,实现将事件源和监听器分开的机制。
事件处理者(监听器)通常是⼀个类,该类如果能够处理某种类型的事件,就必须实现与该事件类型相对应的接⼝import java.awt.Button;import java.awt.FlowLayout;import java.awt.Frame;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;public class ep2_6 {public static void main (String[] args){Frame f=new Frame();Button b1=new Button("1");b1.addActionListener(new ButtonHandler());//注册监听器进⾏授权,该⽅法参数是事件处理对象f.setLayout(new FlowLayout());f.add(b1);f.setSize(100, 100);f.setVisible(true);}class ButtonHandler1 implements ActionListener//实现接⼝ActionListener才能做事件ActionEventd的处理者{public void actionPerformed1(ActionEvent e)//系统产⽣的ActionEvent事件对象被当作参数传递给该⽅法{System.out.println("处理");}@Overridepublic void actionPerformed(ActionEvent e) {// TODO ⾃动⽣成的⽅法存根}}}。