网站大量收购闲置独家精品文档,联系QQ:2885784924

安徽科技学院面向对象程序设计课件Chapter 16 事 件处理.ppt

安徽科技学院面向对象程序设计课件Chapter 16 事 件处理.ppt

  1. 1、本文档共46页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Chapter 16 事件处理 本章说明 在窗口程序设计里,事件的设计是不可或缺的一环。当按下按钮时,也就触发了“按钮被按”的事件,至于计算机要做什么样的反应,则是由程序代码来做判断与决定。 当用户单击按钮、键入文本、使用鼠标或进行其它与界面相关的行动时,都发生界面事件。 Java的java.awt.event包中包含了许多用来处理事件的类和接口。 Java支持授权事件模型,在授权事件模型中,事件从一个事件源授权到一个或多个事件聆听者(事件监视器)。 16-1 委派事件模型 Java的事件处理是采取“委派事件模型”(delegation event model) 所谓的“委派事件模型”是指当事件发生时,产生事件的对象(即事件源,event source),会把此信息转给“事件聆听者”(event listener)处理的一种方式,而这里所指的“信息”事实上就是java.awt.event事件类库里某个类所创建的对象,暂且把它称为“事件的对象”(event object)。 为了让“产生事件的对象” 知道要把事件信息传送给哪一个“事件聆听者”,必须先把“事件聆听者”向“产生事件的对象”注册(register),这个操作也就是告知“产生事件的对象”要把事件信息传递给它 。 “委派事件模型”的运作流程 谁来当聆听者 ? 编写事件处理的程序之前,首先必须先选择事件源与聆听者。 选择事件源通常较简单,只要调用“事件的对象”(event object)的方法即可。 聆听者是一个类,一个注册了的类,它对事件源进行聆听,以便对发生的事件作出处理,事件源通过调用相应的方法将某个对象作为自己的聆听者 。 通常让包含“事件源”的对象来担任聆听者(这样程序编写起来较为简单),也可以定义其他的类作为聆听者,只要这个类被注册到了事件源上。 怎么注册 ? Java规定:为了让聆听者这个对象能对事件源发生的事件进行处理,创建该聆听者对象的类必须声明实现相应的接口,即必须在类体中给出该接口中所有方法。 实现接口使用implements关键字,如例子:class app16_1 extends Frame implements ActionListener。 注册(设Button为一个按钮对象),则例子:Button .addActionListener( app16_1_object )。 事件处理的程序 当button按钮按下时,它会创建一个代表此事件的对象(上例中是ActionEvent类类型的对象),这个对象包含了此事件与它的起源者,也就是button按钮等相关信息。在Java里,任何事件都是以对象来表示,而此对象也会被当成参数传入处理事件的方法里。 在处理事件的方法里可以根据不同的事件源写出不同的处理程序。 一个简单的例子 01 // app16_2, 定义内部类当成聆听者 02 import java.awt.*; 03 import java.awt.event.*; 04 public class app16_2 //主类,注意此类不用继承 Frame类 05 { 06 static Frame frm=new Frame(Action Event); 07 static Button btn=new Button(Click Me); 08 09 public static void main(String args[]) 10 { 11 btn.addActionListener(new ActLis()); 12 frm.setLayout(new FlowLayout()); 13 frm.setSize(200,150); 14 frm.add(btn); 15 frm.setVisible(true); 16 } 17 // 定义内部类ActLis,并实现ActionListener接口 18 static class ActLis implements ActionListener 19 { 20 public void actionPerformed(ActionEvent e) // 事件发生的处理操作 21 { 22 frm.setBackground(Color.yellow); 23 } 24

文档评论(0)

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

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

1亿VIP精品文档

相关文档