java程序设计之事件处理.ppt

  1. 1、本文档共79页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
委托事件模型 事件处理:为组件设计相应的程序,使组件能够响应并处理用户的操作。 Java 程序一旦构建完GUI,就不再工作,而是等待用户通过鼠标、键盘给它通知(消息驱动),它再根据这个通知的内容进行相应的处理(事件驱动)。 通常一个键盘或鼠标操作会引发一个系统预先定义好的事件,用户只需编写代码,定义每个特定事件发生时程序应做出何种响应即可。 委托事件模型 事件(event) 用户使用鼠标或键盘对窗口中的组件进行交互时所发生的事情。对这些事件做出响应的程序,称为事件处理程序(Event Handler)。 事件源(event source) 能够产生事件的对象。如按钮、鼠标、文本框、键盘等 事件监听者(listener) 监听者有专门的方法来处理事件,事件监听者是一个对事件源进行监视的对象,当事件源上发生事件时,事件监听者能够监听到,并调用相应的方法对发生的事件做出相应的处理。 委托事件模型 事件处理程序 Java语言中包含了许多用来处理事件的接口和类。用于事件处理的方法就声明在这些类或接口中。 这些包含有事件处理方法的接口称为监听者接口,包含有事件处理方法的类称为适配器类。 监听者负责处理事件源发生的事件,为了处理事件源发生的事件,监听者会自动调用一个方法来处理事件。这些处理事件的方法就是事件处理程序。 委托事件模型 Java语言规定 为了让监听者能对事件源发生的事件进行处理,创建该监听者对象的类必须声明实现相应的监听者接口或继承相应的适配类 即必须在类体中具体定义该接口中所有方法的方法体或覆盖适配器类中的相应方法,以供监听者自动调用相应事件处理方法来完成对应事件的任务,这些处理事件的方法就是事件处理程序。 委托事件模型 委托事件模型: 是将事件源(如命令按钮)和对事件做出的具体处理(利用监听者实例来对事件进行具体的处理)分离开来。 一般情况下,组件(事件源)不处理自己的事件,而是将事件处理委托给外部的处理实体(监听者)。 当事件发生时,产生事件的对象即事件源,会把此“信息”转给事件监听者处理的一种方式,而这里所指的“信息”事实上就是java.awt.event事件类库里某个类所创建的对象,我们把它称为“事件对象”(Event object)。 事件对象表示事件的内容,对象内部封装了一个对事件源eveutSource的引用和其他信息。 委托事件模型 委托事件模型的工作原理: 委托事件模型 委托事件模型的工作原理: 拟人法: 监听者—老板 组件—工人 注册—老板向工人宣布“我是你的管理者,有事向我报告” 事件发生—向老板报告 事件处理者—老板选派人去完成任务 委托事件模型 谁来充当监听者? (1)让包含“事件源”的对象来担任监听者 例题:在一个窗口中摆放两个组件,一个命令按钮,一个文本区。当单击命令按钮后,将文本区中的字体颜色设置为红色。 为组件增加事件监听者的方法:由于每一个事件类型都有一个相应的监听者接口,通常名为XXXListener,其中XXX代表它所处理的事件类型。在定义类时要实现该接口。 监听者有专门的方法用于处理事件,具体在哪个组件上发生事件后由哪个监听者处理,必须事前用“组件名.addXXXLister( )”进行注册。 委托事件模型 谁来充当监听者? (2)定义内部类来担任监听者 通常将实现接口的类定义在主类里,使之成为它的内部类(内部类可以访问外部类的所有成员) 委托事件模型 谁来充当监听者? (2)用匿名内部类来担任监听者 使用匿名内部类充当监听者这种方式,使程序看起来比较清楚明了。 1、Java语言的事件类 java.awt.event 包和javax.swing.event包中定义了许多事件类用于处理各种用户操作所产生的事件。 对于每一个事件类,几乎都有相应的事件监听者。监听者接口多数都是继承自java.util.EventListener接口。 每当在事件源上发生一个操作时,就会产生相应的事件对象 EventObject有一个重要的方法getSource( ) 该方法返回产生事件的事件源,几乎所有的事件类都要用到这个方法 需注意,并非每个事件类都只对应一个事件 例如KeyEvent类可能对应KEY-PRESSED(键按下)、KEY-RELEASED(键松开)、KEY-TYPED(击键)三事件 1、Java语言的事件类 每个事件类都有一个监听者接口与之相对应,事件类的每个具体事件都有一个具体抽象方法与之对应 当具体事件发生时,该事件将被封装成一个事件类对象,作为实际参数传递给与之对应的具体方法由这个具体方法负责响应并处理发生的事件, 例如:与ActionEvent类事件对应的接口是ActionListener,这个接口定义了抽象方法 public void actionPe

文档评论(0)

ranfand + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档