欢迎来到天天文库
浏览记录
ID:8789456
大小:54.00 KB
页数:10页
时间:2018-04-07
《javagui编程中的事件处理机制详细讲解》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、JavaGUI编程中的事件处理机制详细讲解(1)1)事件:用户对程序的某一种功能性操作。Java中的事件主要有两种:1.组件类事件componentEvent、ContainerEvent、WindowEvent、FocusEvent、PaintEvent、MouseEvent共六大类,它们均是当组件的状态发生变化时产生。2.动作类事件ActionEvent、TextEvent、AdjustmentEvent、ItemEvent共四类。它们均对应用户的某一种功能性操作动作。Java中的事件类都包含在JDK的Java.awt.event包中。2)事件编程:用户编程定义
2、每个特定事件发生时程序应做出何种响应,并且这些响应代码会在对应的事件发生时由系统自动调用。3)事件委托授权处理模型JDK1.1以上版本实现了事件委托授权处理模型的机制。①事件源:产出事件的组件。②监听器:对组件所产生的事件作出具体响应的代吗,即事件产出与处理分别由两个不同类(它们可以分别放在不同的程序中)加以编程实现。③事件处理机制:AWT组件自身不编程处理相应的事件,面是交由事件监听器(它可以是组件所在的容器类或另外的Java程序类,只要它们实现了相关的事件监听器接口即可)处理(事件授权处理模型)。④事件处理的包:java.awt.event包,它提供AWT事件所
3、需的类和接口ActionEvent类对应ActionListener接口;MouseEvent类对应MouseMotionListener接口和MouseListener接口;WindonEvent类对应WindonListener接口---即发生了XXXEvent类型的事件,那么处理该事件的接口为XXXListener);它们的父类为EventObject类。各个事件类的说明:EventObject:所有事件类的超类最重要的方法--getSource(),返回产生某事件的对象AWTEvent:所有AWT事件类的超类最重要的方法--getID(),返回某事件的ID号
4、,事件的ID是一个整数,它指定事件的类型,例如按钮事件或鼠标点击事件ActionEvent:激活组件时发生的事件AdjustmentEvent:调节可调整的组件(如移动滚动条)时发生的事件ComponentEvent:操纵某组件时发生的一个高层事件ContainerEvent:向容器添加或删除组件时发生InputEvent:由某输入设备产生的一个高层事件ItemEvent:从选择项,复选框或列表中选择时发生KeyEvent:操作键盘时发生MouseEvent:操作鼠标时发生PaintEvent:描绘组件时发生的一个事件TextEvent:更改文本时发生WindowE
5、vent:操作窗口时发生的事件,如最大化或最小化某一窗口。4)事件编程的基本原则:事件处理的类代码要对某一类事件加以处理,则应实现它们所对应的接口,并且给出该接口中定义的全部事件响应函数的功能实现(重写其函数体);然后在创建组件时注册该事件的监听器(响应者)。5)事件注册:事件源通过对特定的事件进行注册,以指定该事件的监听器(响应者)是谁。6)事件注册函数:函数名由“add+事件类型对应的监听器接口名称”组成;函数参数为监听器对象(实现事件响应的类的对象,如容器组件自身响应该事件,则监听器对象应用this代表)。publicvoidadd
6、(ListenerObj){}7)事件编程步骤:①实现某一事件的监听器接口(定义事件处理类并实现监听器接口)。②在事件处理类中重写(实现)其事件处理的函数体。③在创建AWT组件时注册事件处理代码以指定该事件的监听器(响应者)是谁。publicclassButtonActionEventextendsAppletimplementsActionListener,MouseMotionListener,MouseListener{publicvoidinit(){this.addActionListener(this);this.addMou
7、serMotionListener(this);this.addMouseListener(this);}publicvoidactionPerFormed(ActionEventevent){if(event.getSource()==SourceObject){//利用事件响应函数中的事件对象获取事件产生时的相关信息}elseif(event.getActionCommand()=="组件的标签名字符文字"{}}publicvoidmouseDragged(MouseEventevent){//利用事件响应函数中的事件对象获取事件产生时的相关信息intx=e
此文档下载收益归作者所有