



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第13章 事件处理 委任事件模式 Java的事件处理是采用委任事件模式(Delegation Event Model)。所谓的委任事件模式,是指事件的处理,由事件的来源(source)对象,转委任给一个或多个事件监听者(Event Listener)来处理。事件监听者就可视为一种处理事件的对象。委任的方法如下:Source.addxxxListener(Event Listener);事件监听者 事件监听者是一种处理事件的接口,定义于java.awt.event包中,在此包中也定义了各种事件类。当事件来源对象因用户的操作(鼠标或键盘),系统会自动触发此事件类对象E,并通知所委任之事件监听者A(
2、若来源对象已向A注册),然后事件监听者A中所定义之处理各种事件的方法(事件处理者1n)便会处理此事件E的各种状况 。来源对象向事件监听者A注册事件监听者A事件处理者2事件处理者n事件处理者1用户操作产生事件Ejava.awt.event包 在java.awt.event包中定义了各类事件类、事件监听接口、以及事件转接器(Adapter )。接口ActionListener行动事件监听接口 AdjustmentListener调整事件监听接口 AWTEventListenerAWT事件监听接口ComponentListener组件事件监听接口ContainerListener容器事件监听接口 F
3、ocusListener键盘聚焦于某组件事件HierarchyBoundsListenerAncestor移动及调整事件HierarchyListener文件结构改变事件监听接口InputMethodListener输入方法事件监听接口ItemListener选项事件监听接口 KeyListener键盘事件监听接口MouseListener鼠标事件监听接口MouseMotionListener鼠标移动监听接口 TextListener文字事件监听接口WindowListener窗口事件监听接口类 ActionEvent行动事件AdjustmentEvent调整事件 ComponentAdapt
4、er组件事件转接器 ComponentEvent组件事件 ContainerAdapter容器事件转接器 ContainerEvent容器事件 FocusAdapter焦点事件转接器 FocusEvent焦点事件 HierarchyBoundsAdapterAncestor移动及调整事件转接器 HierarchyEvent文件结构事件 InputEvent输入事件 InputMethodEvent输入方法事件 InvocationEvent调用事件 ItemEvent选项事件 KeyAdapter键盘事件转接器 KeyEvent键盘事件 MouseAdapter鼠标事件转接器 MouseEve
5、nt鼠标事件 MouseMotionAdapter鼠标移动转接器 PaintEvent绘图事件 TextEvent文字事件 WindowAdapter窗口事件转接器 WindowEvent窗口事件转接器 java.awt.event包层次关系 ActionListener及ActionEvent ActionEvent是最常用到的事件,用户用鼠标左键按下去的时候,便产生此事件。而处理此事件的事件处理者只有一个actionPerformed(ActionEvent e)。 范例13_1计算器 在这个范例中,每个按钮都被加入ActionListener事件监听者。然后另外写一个类CalButton
6、1是实现ActionListener的,而在此类中用方法覆盖的方式来处理事件 。范例13_2:加减乘除 范例13_3:计算电费 输入用电度数,并选择用电类型以计算电费。计算公式为:家庭用电110度(含)以下每度3.0元,110330度间每度3.3元,330度以上每度3.5元。工业用电一律每度3.0元 。TextListener及TextEvent TextListener为监听文字事件的接口。当文字字段有TextEvent发生时,便调用textValueChanged()方法来处理。在本例中,输入两个本金与利率,便会显示利息合计 。范例13_4利息计算 ItemListener及ItemEve
7、nt ItemListener是处理选项类事件的接口。当事件发生时,便会调用itemStateChanged()方法,并将ItemEvent做参数传递到此方法 。 范例13_5字体变化 MouseListener、MouseMotionListener及MouseEvent以上几个范例的监听接口中,都只有定义一个方法,故处理上较为单纯。接下来我们来看看其他有定义多个方法的接口 。 MouseListener、MouseMotionListener都是处理MouseEvent的接口,但其处理方法不同。MouseListener处理对象对于鼠标的进入、离开、下压、释放及敲击事件。MouseMoti
8、onListener则处理鼠标的移动及拖曳 。范例13_6鼠标事件 事件转接器 在java.awt.event中除了定义了各种Event类,也定义各种事件转接器(Event Adapters)。Adapter是用来简化复写事件监听接口方法的一种便利的转接器 。像在上一个范例中,ButtonMouseMotionListener实现了MouseMotionListener,并重新定义其方法。但有一个方法:mouseDragged(),我们并没有重新定义。但是仍然必须将此方法写出来。否则compile会出现错误信息:MouseEventApplet.ButtonMouseMotionListene
9、r should be declared abstract; it does not define mouseDragged(java.awt.event.MouseEvent) in MouseEventApplet.ButtonMouseMotionListener class ButtonMouseMotionListener implements MouseMotionListener 1 errorFinished也就是说,若我们实现一事件监听接口时,必须将其所有的成员方法重新写出来,不论有没有用到。这样对于有多个方法的接口,使用时便很麻烦。因此,Java为了体恤我们的辛劳,便将有多
10、个成员方法的接口,另外再定义一种相对应的类来简化程序撰写 。我们将上例改写成MouseEventApplet_1,其中改写的部分如下 : class ButtonMouseMotionListener extends MouseMotionAdapter public MouseEventApplet_1 japplet=new MouseEventApplet_1() ;public ButtonMouseMotionListener(MouseEventApplet_1 japplet1)this.japplet=japplet1;public void mouseMoved(MouseEvent event)ja
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 幼儿园数学评估创新试题及答案探讨
- 新能源汽车出口市场分析试题及答案
- 施工现场安全监督管理方式2025年试题及答案
- 大学化学2025年技能提升试题及答案
- 数字联系实际的试题及答案
- 农业电商成果展现考题关键点分析试题及答案
- 化学动态平衡相关知识题目及答案
- 小学教育教学反思的案例分享试题及答案
- 充电技术行业动态分析考核试题及答案
- 家具行业设计中的科技应用方式试题及答案
- 《企业员工流失问题探究的国内外文献综述》4900字
- 仙居县永安溪绿道设计研究
- 肿瘤患者营养治疗科普
- 高教版2023年中职教科书《语文》(基础模块)下册教案全册
- 2025新译林版英语七年级下单词默写单
- 2024年中国心力衰竭诊断和治疗指南2024版
- 超龄员工用工免责协议书
- 《IP化产品消费者感知因素对购买意愿的影响研究》
- 采访课件模板
- 《黑神话:悟空》背后的中国文化自信
- 华中农业大学二级心理辅导站建设方案
评论
0/150
提交评论