![GUI中的事件处理机制-授课版.ppt_第1页](http://file.renrendoc.com/FileRoot1/2019-1/15/91e9e3a1-d2c7-42e7-90b6-1f51bebfc732/91e9e3a1-d2c7-42e7-90b6-1f51bebfc7321.gif)
![GUI中的事件处理机制-授课版.ppt_第2页](http://file.renrendoc.com/FileRoot1/2019-1/15/91e9e3a1-d2c7-42e7-90b6-1f51bebfc732/91e9e3a1-d2c7-42e7-90b6-1f51bebfc7322.gif)
![GUI中的事件处理机制-授课版.ppt_第3页](http://file.renrendoc.com/FileRoot1/2019-1/15/91e9e3a1-d2c7-42e7-90b6-1f51bebfc732/91e9e3a1-d2c7-42e7-90b6-1f51bebfc7323.gif)
![GUI中的事件处理机制-授课版.ppt_第4页](http://file.renrendoc.com/FileRoot1/2019-1/15/91e9e3a1-d2c7-42e7-90b6-1f51bebfc732/91e9e3a1-d2c7-42e7-90b6-1f51bebfc7324.gif)
![GUI中的事件处理机制-授课版.ppt_第5页](http://file.renrendoc.com/FileRoot1/2019-1/15/91e9e3a1-d2c7-42e7-90b6-1f51bebfc732/91e9e3a1-d2c7-42e7-90b6-1f51bebfc7325.gif)
已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
GUI中的事件处理机制,信息工程学院 欧阳宏基,2,主要内容,1.事件处理机制的基本概念 事件源 事件 事件监听器 2.常见事件及其对应的监听器与适配器 3.事件处理在实际案例中的应用 4.监听器对象的实现方案(重点、难点) (1) this对象 (2)内部类 (3)匿名内部类,3,事件处理机制,事件处理机制:触发界面中的相关组件,从而执行一定的逻辑,达到与用户交互的目的。 主要涉及三类对象: (1)事件源(Event Source):事件发生的场所,通常是容器或组件,例如按钮、下拉列表。 (2)事件(Event):用户对界面操作在java语言上的描述,以类的形式出现,例如键盘操作对应的事件类是KeyEvent。 (3)事件处理者(Event Handler):接收事件并对其进行处理的对象。,4,事件的分类,低级事件 WindowEvent(窗口事件) FocusEvent(焦点事件) KeyEvent(键盘事件) MouseEvent(鼠标事件),5,事件的分类,高级事件(语义事件) ActionEvent(动作事件) AdjustmentEvent(调节事件) ItemEvent(项目事件) TextEvent(文本事件),6,事件监听接口及抽象方法,7,事件监听接口及抽象方法,8,适配器,适配器类是针对监听接口的一个空方法实现,不具备任何 实际动作。,9,适配器,class MouseEventHandler implements MouseListener public void mouseClicked(MouseEvent e) /相关代码 public void mouseEntered(MouseEvent e) public void mouseExited(MouseEvent e) public void mousePressed(MouseEvent e) public void mouseReleased(MouseEvent e) ,class MouseEventHandler extends MouseAdapter public void mouseClicked(MouseEvent e) /相关代码 ,10,事件处理机制交互过程,事件源,触发,监听接口,传递事件对象给监听器,监听器对象,实 现,注册监听器,事件类型,创建,11,在线考试系统客户端登录页面的事件,输入正确的学号信息后,点击“Enter”,触发KeyEvent事件。,点击“登录”按钮,触发ActionEvent事件。,点击“关闭”按钮,触发WindowEvent事件。,12,监听器对象的实现方式,方式1:this对象方式 事件源所在的类充当该事件的监听器。 事件源.addXXXListener(this) 方式2:内部类对象方式 监听器是事件源所在类的内部类。 事件源.addXXXListener(内部类对象) 方式3:匿名内部类方式 监听器是事件源所在类的匿名内部类。 事件源.addXXXListener(匿名内部类的定义与创建),内部类:定义在一个类的内部的类,该类可以访问外部类的属性和方法,匿名内部类: 没有名字需要继承于一个已有的父类或实现一个接口。不存在构造方法,它需要显示地调用一个无参的父类的构造方法。,13,this对象方式实现监听器, class LoginFrm extends JFrame implements ActionListener public void actionPerformed(ActionEvent e) 相关业务逻辑 button_ok.addActionListener( this );,事件源:JButton button_ok; 事件:ActionEvent 监听接口:ActionListener,获取文本框中输入的学号,开始,学号是否合法,学号是否有效,登录窗体消失, 信息校验窗体出现,结束,Y,N,Y,N,14,内部类方式实现监听器,事件源:JFrame 事件:WindowEvent 监听器接口:WindowListener 适配器:WindowAdapter class WindowEventHandler extends WindowAdapter public void windowClosing(WindowEvent e) 相关业务逻辑 this.addWindowListener(new WindowEventHandler();,开始,通过确认对话框进行询问,确定要退出?,通过System.exit(0)结束进程,结束,N,Y,15,匿名内部类方式实现监听器,事件源:JTextField text_sno 事件:KeyEvent 监听接口:KeyListener 适配器:KeyAdapter text_sno.addKeyListener( new KeyAdapter() public void keyPressed(KeyEvent e) 相关业务逻辑 );,开始,获取键盘输入的键值,是Enter键?,提示学号有效,结束,N,判断学号有效?,Y,N,Y,提示学号无效,16,监听器三种实现方式的比较,This对象方式: 优点:实现方式简单,不用单独创建监听器对象。 缺点:显示逻辑与业务逻辑紧密耦合,分工不明确。 内部类方式: 优点:显示逻辑与业务逻辑分离。 缺点:增加了类的数量,需要创建内部类的对象。 匿名内部类方式: 优点:代码位置固定,节约内存,程序结构
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 论语读书心得500字
- 论语高中读后感高分集锦1
- 幼儿园垃圾分类教育课件
- 《电磁兼容 限值 接入中压、高压、超高压电力系统的不平衡设施发射限值的评估GBZ 17625.13-2020》详细解读
- 预防性侵安全教育课件
- 初中生预防艾滋病课件
- 班级工作计划5篇
- 人工智能创新实验教程 课件 第7章 logistic回归算法
- 幼儿园大班主题《奇妙的汉字》课件
- 做时代的奋斗者演讲稿
- 2024建筑施工承包合同范本
- 2024-2029年中国化工物流行业十四五现状供需分析及市场深度研究发展前景及规划战略投资分析研究报告
- 2024培训班转让合同协议书范本
- 画室转让合同协议书
- 道德与法治(陕西卷)(考试版)A4-2024年中考考前押题密卷
- 浙江省宁波市2024年初中学业水平考试甬真卷1号明州数学试题(含答案)
- 期末综合测评卷(试题)-2023-2024学年人教版数学四年级下册
- 个人酒店防水合同范本合同模板
- 2024年大连民族大学公开招聘辅导员历年高频考题难、易错点模拟试题(共500题)附带答案详解
- 2024年山东省高中自主招生数学模拟试卷试题(含答案)
- 山东省英语小升初试卷及答案四
评论
0/150
提交评论