componentEvent、ContainerEvent、WindowEvent、FocusEvent、PaintEvent、MouseEvent共六大类,
ActionEvent、TextEvent、AdjustmentEvent、ItemEvent共四类。
它们均对应用户的某一种功能性操作动作。
Java中的事件类都包含在JDK的Java awt event包中。
用户编程定义每个特定事件发生时程序应做出何种响应,并且这些响应代码会在对应的事件发生时由系统自动调用。
JDK1.1以上版本实现了事件委托授权处理模型的机制。
②监听器:对组件所产生的事件作出具体响应的代吗,即事件产出与处理分别由两个不同类(它们可以分别放在不同的程序中)加以编程实现。
③事件处理机制:AWT组件自身不编程处理相应的事件,面是交由事件监听器(它可以是组件所在的容器类或另外的Java程序类,只要它们实现了相关的事件监听器接口即可)处理(事件授权处理模型)。
④事件处理的包:java awt event包,它提供AWT事件所需的类和接口
MouseEvent类对应MouseMotionListener接口和MouseListener接口;
WindonEvent类对应WindonListener接口---即发生了XXXEvent类型的事件,那么处理该事件的接口为XXXListener);它们的父类为EventObject类。
最重要的方法--getID(),返回某事件的ID号,事件的ID是一个整数,它指定事件的类型,例如按钮事件或鼠标点击事件
AdjustmentEvent:调节可调整的组件(如移动滚动条)时发生的事件
ComponentEvent:操纵某组件时发生的一个高层事件
ContainerEvent:向容器添加或删除组件时发生
InputEvent:由某输入设备产生的一个高层事件
ItemEvent:从选择项,复选框或列表中选择时发生
WindowEvent:操作窗口时发生的事件,如最大化或最小化某一窗口。
事件处理的类代码要对某一类事件加以处理,则应实现它们所对应的接口,并且给出该接口中定义的全部事件响应函数的功能实现(重写其函数体);然后在创建组件时注册该事件的监听器(响应者)。
事件源通过对特定的事件进行注册,以指定该事件的监听器(响应者)是谁。
函数名由“add +事件类型对应的监听器接口名称”组成;函数参数为监听器对象(实现事件响应的类的对象,如容器组件自身响应该事件,则监听器对象应用this代表)。
public cancel add< listenerType>(< listenerType > ListenerObj)
①实现某一事件的监听器接口(定义事件处理类并实现监听器接口)。
②在事件处理类中重写(实现)其事件处理的函数体。
③在创建AWT组件时注册事件处理代码以指定该事件的监听器(响应者)是谁。
public categorise ButtonActionEvent extends Applet implements ActionListener,MouseMotionListener,MouseListener{ public void init(){ this addActionListener(this); this addMouserMotionListener(this); this addMouseListener(this);}public void actionPerFormed(ActionEvent event){if(event getSource()==SourceObject){ //利用事件响应函数中的事件对象获取事件产生时的相关信息 }else if(event getActionCommand()=="组件的标签名字符文字"{}}public void mouseDragged(MouseEvent event){ //利用事件响应函数中的事件对象获取事件产生时的相关信息 int x=event getX();int y=event getY();}public void mouseMove(MouseEvent event){}}
,从而响应用户对该组件的操作。本类实现某类事件对应的监听器接口,并实现对应的响应函数),也可屏蔽它(将其事件响应函数体置空)。
(2)事件响应类(监听器)可以实现多个监听器接口,以响应多组不同事件,从而可使同一个组件可以注册多种事件。
(3)利用事件响应函数中的事件对象获取事件产生时的相关信息(event getSource())事件源对象,event getX(),event getY(),事件产生时的鼠标位置,event getActionCommand(),获取组件的字符串名称。
由于事件监听器接口是Abstract类型,意谓着实现该接口的类应全部实现其各个成员函数,但实际应用中可能只需处理某些事件响应代码;此时再采用实现事件监听器接口可能会导致编程复杂。JDK中提供事件适配器方式来实现事件编程。
①每一种监听器接口有相应的适配器类,程序员只需让事件处理类从某一适配器类派出而不采用实现监听器接口的方式,这样仅需重写用户感兴趣的相应函数体代码。各个事件监听器接口相相应的事件适配器类如下:
②在事件注册时,应将监听器设为适配器的派生类(子类)对象,该适配器类中事件响应函数将被执行。
Forex Groups - Tips on Trading
Related article:
http://blog.sina.com.cn/s/blog_4e2e33b801000bz6.html
comments | Add comment | Report as Spam
|