Java程序设计项目化教程-6.5事件_第1页
Java程序设计项目化教程-6.5事件_第2页
Java程序设计项目化教程-6.5事件_第3页
Java程序设计项目化教程-6.5事件_第4页
Java程序设计项目化教程-6.5事件_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

PART6.5事件6.5.1事件处理机制Swing组件中的事件处理专门用于响应用户的操作,如响应用户的鼠标单击、按下键盘等操作。36.5.1事件处理机制在Swing事件处理的过程中,主要涉及三类对象。事件发生的场所,通常是产生事件的组件,如窗口、按钮、莱单等。封装了GUI组件上发生的特定事件(通常就是用户的一次操作)。负责监听事件源上发生的事件,并对各种事件做出相应处理(监听器对象中包含事件处理器)事件源(EventSource):1事件对象(Event):2监听器(Listener):336.5.1事件处理机制上图中1、2、3、4作用如下(2)触发事件源上的事件;(4)接受事件对象,激活事件处理器,实现预定功能。 上图中,事件源是一个组件,当用户进行一些操作时,例如,按下鼠标或者释放键盘等,都会触发相应的事件,如果事件源注册了监听器,则触发的相应事件将会被处理。(3)产生并传递事件对象;(1)将监听器注册到事件源;例6-12事件的应用packageChapter6;importjava.awt.*;importjavax.swing.*;importjava.awt.event.*;//导入事件publicclassexample6_12{ publicstaticvoidmain(String[]args){ Frameframe=newFrame(); Buttonbutton=newButton("AnAWTbutton"); frame.add(button); frame.setSize(400,200); frame.addWindowListener(newCloseMe()); //注册监听器例6-9复选框和单选按钮的使用

frame.setVisible(true); }} classCloseMeextendsWindowAdapter{ //声明监听器

publicvoidwindowClosing(WindowEventevt){//实现/覆盖监听器中的方法

System.exit(0); //退出程序

}}代码中定义了一个名为CloseMe的Windows事件处理类(即监听器),它继承WindowAdapter类,覆盖了windowClosing()方法,当出现关闭窗口事件时将执行这个方法,这个方法只有一行语句:System.exit(0),即退出应用程序。6.5.1事件处理机制6.5.1事件处理机制在主方法中用addWindowListener()方法为frame注册这个监听器的实例。这时frame会将监听到的各种窗口事件都交给CloseMe的实例处理,该实例接收到关闭窗口的事件时,调用windowClosing(),退出应用程序。在这个例子中,监听器类必须实现WindowListener接口(或继承WindowAdapter抽象类,称为适配器,它是WindowListener接口的抽象实现),并且为需要关注的事件编写相应的处理程序,为关闭窗口事件编写处理程序windowClosing(),即退出应用程序。6.5.1事件处理机制除了一些常见的按钮、键盘等组件可以作为事件源外,还可以使用JFrame、Frame窗口在内的顶级容器作为事件源。事件处理主要步骤如下:创建事件源:6.5.1事件处理机制根据要监听的事件源创建指定类型的监听器进行事件处理。监听器是个特殊的Java类,必须实现XXXListener接口。根据组件触发的动作进行区分,例如:WindowListener用于监听窗口事件,ActionListener用于监听动作事件。自定义事件监听器:6.5.1事件处理机制使用addXXXListener()方法为指定事件源添加特定类型的监听器。当事件源上发生监听事件后,就会触发绑定的事件监听器,由监听器中的方法对事件进行相应处理。为事件源注册监听器:6.5.2Swing常用事件处理Swing提供了丰富的事件,这些事件大致可以分为:1.窗体事件(WindowEvent)2.鼠标事件(MouseEvent)3.键盘事件(KeyEvent)4.动作事件(ActionEvent)当对窗体进行操作时,如窗体的打开、关闭、激活、停用等,这些动作都属于窗体事件。Java提供了一个WindowEvent类用于表示窗体事件。1.窗体事件(WindowEvent)6.5.2Swing常用事件处理大部分GUI应用程序都需要使用Window窗体对象作为最外层的容器,可以说窗体对象是所有GUI应用程序的基础,应用程序中通常都是将其他组件直接或者间接地添加到窗体中。1.窗体事件(WindowEvent)6.5.2Swing常用事件处理在应用程序中,当对窗体事件进行处理时,首先需要定义一个实现了WindowListener接口的类作为窗体监听器,然后通过addWindowListener()方法将窗体对象与窗体监听器进行绑定。在图形用户界面中,用户会经常使用鼠标进行选择、切换界面等操作,这些操作被定义为鼠标事件,包括鼠标按下、鼠标松开、鼠标单击等。Java提供了一个MouseEvent类描述鼠标事件。6.5.2Swing常用事件处理2.鼠标事件(MouseEvent)处理鼠标事件时,首先需要通过实现MouseListener接口定义监听器(也可以通过继承适配器MouseAdapter类定义监听器),然后调用addMouseListener()方法将监听器绑定到事件源对象。2.鼠标事件(MouseEvent)6.5.2Swing常用事件处理键盘操作是最常用的用户交互方式,例如,键盘按下、释放等,这些操作被定义为键盘事件。Java提供了一个KeyEvent类表示键盘事件,处理KeyEvent事件的监听器对象需要实现KeyListener接口或者继承KeyAdapter类,然后调用addKeyListener()方法将监听器绑定到事件源对象。3.键盘事件(KeyEvent)2.1.2关键字动作事件不同于前面3种事件,它不代表某类事件,只是表示一个动作发生了。在关闭个文件时,可以通过键盘关闭,也可以通过鼠标关闭。例如:4.动作事件(ActionEvent)2.1.2关键字在Java中,动作事件用ActionEvent类表示

温馨提示

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

评论

0/150

提交评论