欢迎来到天天文库
浏览记录
ID:33525509
大小:634.76 KB
页数:31页
时间:2019-02-26
《第12章-事件处理》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、初学者除了看资料学习java,加入本群还有免费在线学习公开课。Java学习基础交流Q群+544975743学习进度快人一步ó212ó第12章事件处理第12章事件处理上一章主要讨论了组件的使用以及容器的布局,这些使Java图形用户界面的程序设计变得灵活方便,但是与图形界面程序密切相关的还有一个比较重要的内容——事件处理机制。本章主要讲述事件处理模型的概念,介绍事件处理类、事件监听器、时间适配器等内容。12.1事件处理模型以下3类与事件处理机制相关。ßEvent(事件对象):用户界面操作以类的形式描述,例如鼠标操作对应的事件类MouseEven
2、t,界面动作对应的事件类ActionEvent。ßEventSource(事件源):产生事件的场所,通常指组件,例如按钮Checkbox。ßEventhandler(事件处理器):接收事件类并进行相应的处理对象。例如,在窗口中有一个按钮,当用户用鼠标单击这个按钮时,会产生ActionEvent类的一个对象。该按钮就是所谓的事件源,该对象就是鼠标操作所对应的事件,然后事件监听器接受触发的事件,并进行相应处理。图12-1事件处理机制同一个事件源可能会产生一个或者多个事件,Java语言采用授权处理机制(DelegationModel)将事件源可能
3、产生的事件分发给不同的事件处理器。例如Panel对象可能发生鼠标事件和键盘事件,它可以授权处理鼠标事件的事件处理器来处理鼠标事件,同时也可以授权处理键盘事件的事件处理器处理键盘事件。事件处理器会一直监听所有的事件,直到有与之相匹配的事件,就马上进行相应的处理,因此事件处理器也称为事件监听器。授权处理机制可以将事件委托给外部的处理对象进行处理,这就实现了事件源与事件处理器(监听器)的分离。通常事件处理者是一个事件类,该类必须实现处理该类型事件的接ó213óJava从入门到精通口,并实现某些接口方法。例如程序12.1是一个演示事件处理模型的例子
4、,类ButtonHandler实现了ActionListener接口,该接口可以处理的事件是ActionEvent。//文件:程序12.1EventManagerDemon.java描述:事件处理模型演示//导入需要使用的包和类importjava.awt.*;importjava.awt.event.*;publicclassEventManagerDemon{publicstaticvoidmain(String[]args){finalFramef=newFrame("Test");//声明,并初始化窗口对象fButtonb=newB
5、utton("PressMe!");//声明,并初始化按钮对象b//注册监听器进行授权,该方法的参数是事件处理者对象b.addActionListener(newButtonHandler());f.setLayout(newFlowLayout());//为窗口设置布局管理器FlowLayoutf.add(b);//在窗口中添加按钮bf.setSize(200,100);//设置窗口大小f.addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEventevt
6、){f.setVisible(false);//设置窗口f不可见f.dispose();//释放窗口及其子组件的屏幕资源System.exit(0);//退出程序}});f.setVisible(true);//显示窗口}}//ButtonHandler实现接口ActionListener才能做事件ActionEvent的处理者classButtonHandlerimplementsActionListener{publicvoidactionPerformed(ActionEvente)//ActionEvent事件对象作为参数{Syst
7、em.out.println("时间发生,已经捕获到");//本接口必须实现的方法actionPerformed}}编写完程序后,使用javac命令编译该文件产生class文件,然后使用java命令运行该class文件,运行结果如图12-2,按下“PressMe!”按钮,运行结果如图12-3所示。图12-2EventManagerDemon.java运行结果一图12-3EventManagerDemon.java运行结果二程序12.1中,为窗口添加了WindowListener监听器和ActionListener监听器。监听器监听所有的事件
8、,并当遇到与之匹配的事件,就调用响应的方法进行处理。每一个监听器接口ó214ó第12章事件处理都有实现的方法,如ActionListener必须实现actionPerformed
此文档下载收益归作者所有