项目10 10.2事件处理_第1页
项目10 10.2事件处理_第2页
项目10 10.2事件处理_第3页
项目10 10.2事件处理_第4页
项目10 10.2事件处理_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java程序设计语言概述10.2事件处理01事件处理模式01事件处理模式

一个图形用户界面制作完成了仅仅做了程序最开始的工作,如果想要组件发挥作用,就需要对相应的组件进行事件处理。事件处理分为三个部分:事件源、事件对象和监听器。事件的执行流程:01事件处理模式

事件源(EventSource)是一个事件发生的场所,如点击按钮,事件源就是按钮、文本框获得焦点,事件源就是文本框。事件源不需要实现或继承任何接口或类,它是事件最初发生的地方。因为事件源需要注册事件监听器,所以事件源内需要有相应的盛放事件监听器的容器。01

事件源事件对象(EventObject)是封装对图形用户界面的操作,如点击按钮点击,事件对象封装就是点击,关闭窗口,事件对象封装就是关闭。事件对象是事件状态对象的基类,它封装了事件源对象以及和事件相关的信息。所有Java的事件类都需要继承该类。在Java中有多重不同的事件对象,如下列所示:鼠标:单机、双击、滚轮等。键盘:按下键盘、松开键盘等。焦点:获得焦点、失去焦点等。窗体:打开窗体、关闭窗体等。02事件对象监听器(EventObject)监听并负责处理事件的方法,事件监听器是由开发人员编写,开发人员在事件监听器中,通过事件对象可以拿到事件源,从而对事件源上的操作进行处理。03监听器02ActionEvent事件02ActionEvent事件

动作事件它不代表某个具体的动作,只是表示一个动作发生了。无论动作是如何实行的只要已经被执行,那么就触发了动作事件。

在Java中,动作事件用ActionEvent类表示,处理ActionEvent事件的监听器对象需要实现ActionListener接口。03ItemEvent事件02ActionEvent事件

当复选框获得监视器之后,复选框从未选中状态变成选中状态或从选中状态变成未选中状态时就发生ItemEvent事件,ItemEvent类将自动创建一个事件对象。01处理ItemEvent事件的接口是ItemListener,创建监视器的类必须实现ItemListener接口,该接口中只有一个的方法。当在复选框发生ItemEvent事件时,监视器将自动调用接口方法publicvoiditemStateChanged(ItemEvente)对发生的事件做出处理。03

发生ItemEvent事件的事件源获得监视器的方法是addItemListener(ItemListenerlistener),由于复选框可以发生ItemEvent事件,JCheckBox类提供了addItemListener()方法。02ItemEvent事件对象除了可以使用getSource()方法返回发生Itemevent事件的事件源外,也可以使用getItemSelectable()方法返回发生Itemevent事件的事件源。0404DocumentEvent事件04DocumentEvent事件

文本区可以触发DucumentEvent事件,DucumentEven类在javax.swing.event包中。用户在文本区组件的UI代表的视图中进行文本编辑操作,使得文本区中的文本内容发生变化,将导致该文本区所维护的文档模型中的数据发生变化,从而导致DucumentEvent事件的发生。文本区调用addDucumentListener(DucumentListenerlistener)向文本区维护的文档注册监视器。监视器需实现DucumentListener接口,该接口中有3个方法:

publicvoidchangedUpdate(DocumentEvente)publicvoidremoveUpdate(DocumentEvente)publicvoidinsertUpdate(DocumentEvente)getDocument()返回维护的文档,该文档是实现了Document接口类的一个实例。05MouseEvent事件05MouseEvent事件

用户在进行图形界面操作时,经常会用鼠标来进行选择,也可以说任何组件都可以发生鼠标事件,单击、拖动鼠标等操作都可以触发组件发生鼠标事件,也就是说,组件可以成为发生鼠标事件的事件源。处理鼠标事件时,首先需要通过实现MouseListener接口定义监听器(也可以通过继承适配器MouseAdapter类来实现),然后调用addMouseListener()方法将监听器绑定到事件源对象。06FocusEvent事件06FocusEvent事件

组件可以触发焦点事件。组件可以使用publicvoidaddFocusListener(FocusListenerlistener)增加焦点事件监视器。当组件具有焦点监视器后,如果组件从无输入焦点变成有输入焦点或从有输入焦点变成无输入焦点都会触发FocusEvent事件。创建监视器的类必须实现FocusListener接口,该接口有两个方法:publicvoidfocusGained(FocusEvente)publicvoidfocusLost(FocusEvente)当组件从无输入焦点变成有输入焦点触发FocusEvent事件时,监视器调用类实现的接口方法focusGained(FocusEvente);当组件从有输入焦点变成无输入焦点触发FocusEvent事件时,监视器调用类实现的接口方法focusLost(FocusEvente)。一个组件调用publicbooleanrequestFocusInWindow()方法可以获得输入焦点。07KeyEvent事件07KeyEvent事件

键盘操作也是最常用的用户交互方式,例如键盘按下、释放等,这些操作被定义为键盘事件。每个按键事件有一个相关的按键字符和按键代码,分别由KeyEvent中的getKeyChar()和getKeyCode()方法返回。getKeyChar()返回的是事件中和按键相关的字符,getKeyCode()返回的是事件中和按键相关的整数键。08WindowEvent事件08WindowEvent事件

大部分GUI应用程序都需要使用Window窗体对象作为最外层的容器,可以说窗体对象是所有GUI应用程序的基础,应用程序中通常都是将其他组件直接或者间接地置于窗体中。在应用程序中对窗体事件进行处理时,首先定义一个实现WindowListener接口的类作为窗体监听器,然后利用addWindowListener()方法把窗体对象和窗体监听器绑定。09项目演练09项目演练项目名称:影片票房榜‌项目描述:在文本框中输入片名和一个排行,单击添加按钮可以将影片添加到指定位置,排除出现异常的情况。实现选中已有片名,单击删除按钮可以将该片删除,排除出现异常的情况,也可以清空。选中片名单击向上或向下,可以将片名的位置进行交换,排除出现异常的情况。代码参考教材10小结10小结

本章

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论