Java程序设计基础__第14章_事件处理

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
17
14.2 Java语言的事件类
每当在事件源上发生一个操作时,就会产生相应 的事件对象。 事件源与其产生的事件对象的对应关系见教材表 14.2。
18
14.2 Java的事件处理类
Java语言中处理事件的具体方法:
确认触发的事件,取得事件类的名字,如ActionEvent ,去掉其中的“Event”字样。在剩下的部分加入 “Listener”,这就是在类里需要实现的事件监听者 接口。
事件处理程序:Java语言中包含了许多用来处理 事件的接口和类。用于事件处理的方法就声明在 这些类或接口中。这些包含有事件处理方法的接 口称为监听者接口,包含有事件处理方法的类称 为适配器类。监听者负责处理事件源发生的事件 ,为了处理事件源发生的事件,监听者会自动调 用一个方法来处理事件。这些处理事件的方法就 是事件处理程序。
让包含“事件源”的对象来担任监听者 如何编写事件处理程序?见教材中例13.1。 为组件增加事件监听者的方法:由于每一个事 件类型都有一个相应的监听者接口,通常名为 XXXListener,其中XXX代表它所处理的事件 类型。在定义类时要实现事该件接源对口。 监听者有专门的方法象用.ad于听dX处者XX对理Li象事st)e件r(,监具体在哪 个组件上发生事件后由哪个监听者处理,必须 事前用“组件名.addXXXLister( )”进行注册。
7
14.1 委托事件模型
总的来说,委托事件模型是由产生事件的对象( 事件源)、事件对象以及事件监听者对象之间的关系 所组成。而其中的“事件监听者”就是用来处理事件 的对象,也就是说,监听者对象会等待事件的发生, 并在事件发生时收到通知。事件源会在事件产生时, 将相关于该事件的信息封装在一个对象中,称之为“ 事件对象”,并将该对象传递给事件监听者,监听者 就可以根据该“事件对象”内的信息决定适当的处理 方式,即调用相应的事件处理程序。
事件源(event source):能够产生事件的对象。如 按钮、鼠标、文本框、键盘等。
事件监听者(listener):监听者有专门的方法来处
理事件,事件监听者是一个对事件源进行监视的
对象,当事件源上发生事件时,事件监听者能够
监听到,并调用相应的方法对发生的事件做出相
应的处理。
4
14.1 委托事件处理
• 为了让“事件源”(如按钮)知道要把事件信息传 递给哪一个“事件监听者”,事先必须把“事件监 听者”向“事件源”注册(register),这个操作也就 是告知“事件源”要把事件信息传递给它。图13.1 说明了“委托事件模型”的工作原理。
9
14.1 委托事件模型
委托事件模型的工作原理:
10
14.1 委托事件模型
5
14.1 委托事件பைடு நூலகம்理
Java语言规定:为了让监听者能对事件源发生的 事件进行处理,创建该监听者对象的类必须声明 实现相应的监听者接口或继承相应的适配类,即 必须在类体中具体定义该接口中所有方法的方法 体或覆盖适配器类中的相应方法,以供监听者自 动调用相应事件处理方法来完成对应事件的任务 ,这些处理事件的方法就是事件处理程序。
8
14.1 委托事件模型
• 例如,当按钮被鼠标单击时,会触发一个“操作事 件”(Action event),Java程序就会产生一个“事 件对象”来表示这个事件,然后把这个“事件对象 ”传递给“事件监听者”,“事件监听者”再依据 “事件对象”的种类把工作指派给事件处理者,即 事件处理程序。在这里按钮就是一个事件源。
14
15
14.2 Java语言的事件类
java.awt.event 包和javax.swing.event包中定义了许 多事件类用于处理各种用户操作所产生的事件。 事件类的继承关系见教材图14.3。
16
14.2 Java语言的事件类
• 对于每一个事件类,几乎都有相应的事件监听者 。监听者接口多数都是继承自 java.util.EventListener接口。图14.4列出了事件监 听者接口之间的继承关系。 事件类、事件监听者接口和监听者接口中提供的 方法关系列表见教材中表14.1。
6
14.1 委托事件模型
委托事件模型:是将事件源(如命令按钮)和对事 件做出的具体处理(利用监听者实例来对事件进行 具体的处理)分离开来(。jav一a.般a事wt件情.对e况v象en下t),,表组件(事件 源)不处理自己的事件示,事而件是的内将容事,件内处部封理委托给外 部的处理实体(监听者装)了。一用当个等对事信事件息件。发源生的引时,产生事 件的对象即事件源,会把此“信息”转给事件监听 者处理的一种方式,而这里所指的“信息”事实上 就是java.awt.event事件类库里某个类所创建的对象, 我们把它称为“事件对象”(Event object)。事件 对象表示事件的内容,对象内部封装了一个对事件 源eveutSource的引用和其他信息。
通常一个键盘或鼠标操作会引发一个系统预先定 义好的事件,用户只需编写代码,定义每个特定 事件发生时程序应做出何种响应即可。
3
14.1 委托事件处理
事件(event):用户使用鼠标或键盘对窗口中的组 件进行交互时所发生的事情。对这些事件做出响 应的程序,称为事件处理程序(Event Handler)。
第14章 事件处理
L/O/G/O
1
本章主要内容
委托事件模型
担任监听者的条件
Java语言的事件类 监听者接口与适配器类 事件及相应的事件处理
菜单栏设计
工具栏设计师
定时器
2
14.1 委托事件模型
事件处理:为组件设计相应的程序,使组件能够 响应并处理用户的操消息作处。理和事件驱 Java 程序一旦构建动技完术是G的面UI主向,要对就特象不编点再程。工作,而是等 待用户通过鼠标、键盘给它通知(消息驱动), 它再根据这个通知的内容进行相应的处理(事件 驱动)。
11
14.1 委托事件模型
定义内部类来担任监听者 通常将实现接口的类定义在主类里,使之成为 它的内部类(内部类可以访问外部类的所有成 员) 见教材例14.2。
12
13
14.1 委托事件模型
使用匿名内部类来担任监听者 使用匿名内部类充当监听者这种方式,使程序看 起来比较清楚明了。
见教材例14.3。
相关文档
最新文档