admin 管理员组

文章数量: 887031


2024年1月13日发(作者:adobe phonegap)

2OIO年4月 济南职业学院学报 Journal ofJinan Vocational College Apr.2010 第2期(总第79期) No.2(Serial No.79) Java GUI事件处理机制之探究 赵妹菊 (天津滨海职业学院,天津300451) 摘 ̄:Java GuI应用程序开发最重要的环节就是事件处理,即如何对用户操作予以响应。本文重在探究用 于进彳亍Iava GUI事件处理的委托事件模式及应用方式,该模式利用事件、事件源、事件监听者及其相互关系组织  ̄Java GUI事件处理机制。 关键词:Java;GUI;事件处理;监听者;类 中图分类号:TP31 文献标识码:A 文章编号:1673—4270(2010)02—0098—02 20世纪90年代,美国的Sun MicroSystems 公司开发了Java程序设计语言。由于Java具有面 1.1事件处理机制要素 事件(Event):用户对Java GUI组件的某 向对象、平台独立、分布式应用、安全稳定、简单 种操作或系统中某个事情的发生,如单击按 易用以及多线程等特点,自发布以来备受推崇, 钮、键盘输入等。根据用户操作的不同,会产 已成为当今主流的编程语言和应用系统开发工 生不同的事件类。事件类被封装在iava.awt. 具。 Java GU I(Java Graphical User Interface)就 event包中。 事件源(Event Source):产生事件的Java GUI 是指基于Java语言的图形用户界面开发,它借助于 组件,如被单击的按钮,被选中的单选框等。事件 多种Java组件,包括菜单、按钮、文本框、选择框、 源需要注册与其对应的事件监听者,用于监听事 列表框等,通过相应的事件处理机制,实现和用户 件的产生。 的动态交互。 1委托事件模式 事件监听者(Listener):接受事件并实现事 件处理的对象。事件监听者必须实现与事件源 Java GUI事件处理机制采用委托事件模式 所产生事件对应的监听接口,执行接口中提供的 (Delegation Event Mode1),主要由事件、事件 事件处理方法,方可实现监听和处理功能。 源、事件监听者三部分相互关联而成,即当事件 事件适配器(Adapter):通过继承事件所对 发生时,由事件源委托给一个或多个事件监听者 应的适配器类,可代替实现监听接口。使用适配器 进行处理,从而产生执行效果。在委托事件模式 类,只需书写实际所需方法,无需实现接口中的全 中,事件发生和事件处理是分离的,用户操作与 部方法,因此只有包含多个方法的接口才会配有  程序逻辑相对独立,这样使得程序层次清晰且 适配器类,从而简化程序代码。便于扩展。 各要素之间对应关系如表1所示: 收稿日期:2010—03—15 作者简介:赵姝菊(1982一),女,天津人,天津滨海职业学院助教。 ・98・ 

表1三种常见事件处理机制要素对应关系 事件源 JButton JCheckBox 事件类 监听接口 适配器类 接口方法 actionPerformed(ActionEvemt) itemStateChanged(ItemEvent) ActionEvent ActionListener ItemEvent ItemListener Component KeyEvent KeyListener KeyAdapter keyPressed(KeyEvent) keyReleased(KeyEvent) keyTyped(KeyEvent) 1.2事件处理流程 前对象表示,另外,Test类作为监听者,还要实现 以事件源为JButton为例,首先要定义一个 接口中的actionPerformed(ActionEvente)抽象方 类(如Test)去实现监听接口ActionListener, 此时Te St类对象即为监听者对象,其次利用 addActionListener(new Test())方法为事件 源JButton对象注册监听者,当JButton对象被 单击,其会产生一个ActionEvent事件对象,监 听者对象监听到此事件后,立即对事件进行处 理,即调用ActionLi StenerE口中的唯一方法 actionPerformed(ActionEvent)去响应该单击 事件。 2事件处理机制应用方式 鉴于程序的不同规模和要求,可以选择不同 的创建监听者对象,进而进行Java GUI事件处理 的方式。 2.1主类作为监听者 在小型Java GUI应用程序中,通常用主类作 为监听者,去实现一个或多个监听接口。此种方式 将事件源的定义、监听接口的实现、注册监听者对 象、事件的产生和处理都集中在一个类(主类)中 完成,应用简单,适用于小规模应用程序的开发。 以JButton为例,程序框架代码如下: public class Testl extends JFrame implements ActionListener{ JButton jb=new J Button(); jb.addActionListener(this); public void actionPerformed(ActionEvent e)f …} } 因为Testl主类实现了ActionListener接口,所 以给JButton对象-ib注册监听的addActionListener ()方法中的参数应为Testl类对象,即可用this当 法,用以进行JButton事件处理。 2.2匿名内部类作为监听者 可以将一个类的定义放在另一个类的定义内 部,这就是内部类。如果这个内部类没有名字,就 称它为匿名内部类。在Java GUI事件处理中,经常 使用匿名内部类来处理适配器类。此种方式结构 紧凑、针对性强,适用于方法体中代码较少、功能 明确简洁的适配器类使用。以JTextField文本框为 例,程序框架代码如下: public class Test2 extends JFrame f JTextField jtf=new JTextField(10); jtf.addKeyListener(new KeyAdapter()fpublic void keyTyped(KeyEvent e }}); } 此程序匿名内部类出现在为事件源 JTextField对 tf注册监听所使用方法的参数内。 匿名内部类是一种特殊的类,由程序可知,适配器 类作为匿名内部类使用,不需要用完整的对象声 明,而用new关键字构造 ̄KeyAdapter适配器对象 作为监听者对象,并随后直接给出接口方法的定 义及实现。 2.3辅类作为监听者 一个Java文件中可以存在多个类,但有且只 有一个类是主类,即用public修饰的类。在Java GUI事件处理中,可以将事件源对象的定义、事 件源对象注册监听与监听对象的定义、事件处 理方法分开,即将界面布局与事件处理明确划 分,用特定的辅助类作为事件的监听者,并在其 中进行事件处理。此种方式层次清晰、结构完 整、便于扩展,适用于大规模应用(下转第102页) ・99・ 

怕暂时的退步也要把它作为进步的起点。只有这 Windows XP建立对等网、Web和FTPJ] ̄务器的安 样的评价,才会给学生带来不断上进的勇气。当 装与测试、局域网组建等实验;第二层次是中级 然,在学生的自我评价与相互评价中也应强调发 技能训练,它着重面向计算机网络与通讯类、计算 现自己的长处和发现别人的优点。 5、激发兴趣,培养学生解决问题的能力 机网络与应用技术类,训练学生进一步掌握较高 级和较复杂的网络应用技能,包括交换机/路由 兴趣是最好的老师和最大的动能,又是一个 器配置、园区网规划与配置、动态网页服务、数据 人事业取得成功的首要因素,有了兴趣才能发挥 库服务器的安装和配置、邮件服务器的配置、网络 无穷的力量。笔者在上计算机课时,没上多长时 安全产品配置等多个实验。 间,就发现大家对枯燥的DOS命令和英文打字练 计算机课程教学要有鲜明的特色,要积极跟 习失去了兴趣,甚至认为学计算机没什么意思。于 踪计算机发展的最新成果,不断更新课程教学内 是就先教同学们玩游戏和上网,激发他们学习计 容,不断深化教学改革,对新时期人才培养模式 算机的兴趣。而在玩游戏和上网的过程中难免会 进行积极探索,完善课程体系,建设必要的教学 出现很多问题,老师可指导他们自己先查书想办 条件和实践环境,造就一支师德高尚、团结协作、 法解决,实在解决不了的,再帮他们解决,最后计 高水平的师资队伍,认真开展教学评价,才能取得 算机课成了他们最喜欢的课程之_。从这里看出, 兴趣确实是事业取胜的第一要素。因此激发和培 成效。 养、保护和利用学生的潜在兴趣,是老师在开展 参考文献 创新教学中绝不能忽视的教育艺术和手段。 [1】谭明.计算机应用基础新课程教学设计探析[J1_中国高新技 6、充实和加强实践性教学环节 术企业,2008,(5). 我们不断地探索,研究实验教学的规律,积 极地进行实践。针对不同专业不同的教学内容与 要求,将相关的网络实验分为两个层次:第一层 次是基本技能训练,训练学生掌握常用的网络工 具和建立、配置网络的方法,包括Windows Server [2]朱贤友.论新课改下高师院校计算机基础课程的教学改革【J] 当代教育论坛,2008,(9). 【3]秦洪星.浅谈新课教改与科技教育中学生创造力的培养【N1. 民族论坛,2009—03—25. [4]方泳泽_大学计算机公共基础课精品课程建设的实践与思考【J]. 中国现代教育装备,2008,(12). 系统的简单应用、Internet浏览器使用、利用 (责任编辑:孙建霞) (上接第99页)程序的开发和整合。以JCheckBox 听者类对象,用于为复选框jcb对象注册监听。一 复选框为例,程序框架代码如下: public class Test3 extends JFrame{ JCheckBox jcb=new JCheckBox(); 旦发生ItemEvent事件,便会调用itemstatechanged ()方法用以进行事件处理。 综上,开发者可以根据具体情况选择适当的 事件处理应用方式进行系统开发。Java GUI事件 处理机制结构分明、逻辑性强、应用方式多样,具 备广阔的发展空间。 jcb.addItemListener(new Test4()); class Test4 implements ItemListener{ public void itemStateChanged (ItemEvent e){..・} } } 参考文献 [1]李钟蔚.Java开发实战宝典[M].北京:清华大学出版社,2010. [2】杨昱呙.Java语言案例教程【M].杭州:浙江大学出版社,2008 程序中Test4作为监听者被放置在Test3主类 内部,除此之外,它也可以在Test3主类外部定义和 实现。addItemListener()方法中的参数为Test4监 ・1n,・ [3]Bruce Ecke1.Java编程思想[M】.北京:机械工业出版社.2007 (责任编辑:孙建霞) 


本文标签: 事件 监听 方法 对象