- 1、本文档共42页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第十二章事件处理12.1事件基本概念12.2委托事件模型12.3事件处理程序本章小结
12.1事件基本概念
12.1.1事件窗口的事件(event)指的是用户使用鼠标、键盘在窗口程序中对窗口组件进行的各种操作,例如鼠标点击、进入、移动、拖动以及键盘键入等。事件也可以由操作系统触发,例如时间计时器等,事件类的主要类层次如图12-1所示。
图12-1事件类层次结构
java.util.EventObject是所有事件类的超类,具有方法getSource(),用于返回产生某事件的组件对象(事件源);java.awt.AWTEvent是所有AWT事件的根事件类,此类及其子类取代了原来的java.awt.Event类,具有方法getID(),返回某事件的ID号。
Java的部分事件类描述如表12-1所示。
12.1.2事件源
事件源(EventSource)即事件发生的地方,主要指的是事件发生在哪个窗口组件上。上述的事件类大多与相应的事件源对应,如表12-2所示。
12.1.3监听器接口与监听器对象
窗口组件的事件如何进行处理呢?Java将窗口组件的事件处理“委托”给监听器对象来完成,监听器对象是监听器接口的实现类对象。
1.监听器接口
Java的接口java.util.EventListener是所有监听器接口的父接口,该父接口下约有70多个子接口,较为常用的接口如表12-3所示。
不同的监听器接口监听的事件源不同,监听的具体事件也不同;在监听器接口中声明了被监听组件发生相应事件时应该被调用的事件处理方法,方法的具体代码由监听器接口的实现类来完成。例如键盘监听器接口KeyListener将监听某个窗口组件的键盘事件,接口的定义如下:
键盘监听器接口KeyListener声明了三个方法监听某个组件上对应的事件,当事件发生时将调用相应的方法:
(1)键盘按键被按下,调用keyPressed方法。
(2)键盘按键抬起来,调用keyReleased方法。
(3)键盘按键被敲击一次,调用keyTyped方法。
2.监听器对象
监听器对象是监听器接口实现类的实例对象,该对象具有监听窗口组件指定事件的能力,当该事件在窗口组件上发生时,监听器对象能够获取该事件对象并执行预定义的方法,用以实现事件处理。
对于不同组件可能发生的对应事件,需要选择相应的监听器接口,自定义监听器类实现该接口,将事件发生时要执行的动作代码写到接口声明的方法中,然后创建监听器对象与被监听的组件进行绑定,就可以“坐等”该组件上指定事件的发生。
12.1.4监听器适配器
监听器适配器(ListenerAdapter)是空实现了对应监听器接口的类,即监听器适配器将监听器接口的所有方法进行了实现,但是方法体为空,这样可方便程序员继承监听器适配器而不用实现监听器接口,如图12-2所示。
图12-2监听器适配器
因为适配器已经空实现了监听器的所有抽象方法,对于自定义监听器类而言,继承了适配器也就相当于空实现了监听器接口。对于接口中的多个抽象方法,需要在哪个方法中写事件处理代码,只需要重写那个方法即可,其它不需要的方法可以不用管。常用监听器对应的适配器如表12-4所示。
12.2委托事件模型
从前面对Java事件处理的基本概念的描述可知,窗口组件对事件的处理是“委托”给监听器对象来完成的,而事件处理要求Java程序员需要做的有以下几步:(1)编写自定义监听器类,可以实现对应的监听器接口,也可以继承对应的监听器适配器,在该类中实现/重写对应事件的处理方法。
(2)使用自定义监听器类创建监听器对象,将该对象与要监听的窗口组件进行“关联”。
(3)当该窗口组件上被监听的事件发生时,就会被监听器对象监听到并获得该事件对象,然后自动执行预定义的事件处理方法。
该模型如图12-3所示。
图12-3委托事件模型
图12-3中,要注意两类线型:
(1)虚线说明:
①需要在程序中预先定义好监听器接口实现类。
②在监听器类中要完成具体的事件处理方法,即预先定义的事件处理的动作代码。
③将监听器实现类产生的监听器对象与窗口组件进行注册/绑定。
(2)实线说明:
①当用户有鼠标或键盘的操作在被监听的窗口组件上发生时,系统将产生相应的事件对象。
②事件源组件将事件对象传递给已注册的监听器对象,然后由监听器对象接管事件处理,展现出预定义的事件处理动作。
12.3事件处理程序
12.3.1标准事件处理JButton按钮组件的标准动作是点击鼠标左键,该动作将产生Acti
您可能关注的文档
- 3dsMax+VRay+Photoshop室内效果图制作项目教程 第2版 课件全套 孙琪 1--4 ds Max实体建模应用 ---古香古色设计风格制作.pptx
- Java程序设计基础 课件 第1章 Java概述.pptx
- Java程序设计基础 课件 第2章 Java语言基础.pptx
- Java程序设计基础 课件 第3章 Java面向过程编程.pptx
- Java程序设计基础 课件 第4章 Java数组与字符串.pptx
- Java程序设计基础 课件 第5章 Java类与对象.pptx
- Java程序设计基础 课件 第6章 Java继承与抽象类.pptx
- Java程序设计基础 课件 第7章 多态与接口.pptx
- Java程序设计基础 课件 第8章 异常处理.pptx
- Java程序设计基础 课件 第9章 Java输入输出.pptx
- 四川省德阳市罗江中学2025届高三考前热身化学试卷含解析.doc
- 山东省枣庄现代实验学校2025届高三下学期第五次调研考试化学试题含解析.doc
- 吉林省长春市十一高中等九校教育联盟2025届高三一诊考试生物试卷含解析.doc
- 2025届江苏省盐城市伍佑中学高考仿真模拟化学试卷含解析.doc
- 2025届广西贺州中学高考冲刺押题(最后一卷)生物试卷含解析.doc
- 安徽省池州市贵池区2025届高三第一次模拟考试生物试卷含解析.doc
- 宁夏银川一中2025届高三(最后冲刺)化学试卷含解析.doc
- 广东省广州市增城区四校联考2025届高考压轴卷化学试卷含解析.doc
- 2025届邯郸市第一中学高考生物必刷试卷含解析.doc
- 2025届安徽省安庆市石化第一中学高考仿真卷化学试卷含解析.doc
文档评论(0)