配色: 字号:
Java语言程序设计基础课件ppt第9章 第2讲
2022-08-19 | 阅:  转:  |  分享 
  
第二讲交互与事件处理事件处理模型委托事件处理模型Java用来实现图形用户界面交互的机制处理流程:用户操作界面组件;鼠标点击等该
组件(事件源)产生某种信号(事件)事先注册给这个组件(事件源)的一个监听器会接收到这个信号(事件),并进行处理需要弄清楚的问题
事件源与事件的关系什么是事件?什么是事件源?有哪些事件源?他们在什么情况下会产生什么样的事件?如何实现监听器?(关键问题)
事件事件:可以定义为程序发生了某些事情的信号。外部用户行为,如移动鼠标、点击鼠标按钮和按下键盘等,可以引发事件。操作系统,
如时钟等,也可以引发事件,程序可以响应或忽略事件。事件源:在其上发生事件的GUI组件被称为事件的源对象。例如,按钮是点击按钮事件
的源对象。事件是事件类的实例,事件类的根类是java.util.EventObject。Event类结构体系需要了解的包:
java.awt.event:基本事件包javax.swing.event:扩展事件包事件源与事件关系 用户行为
源对象 事件类型点击按钮
JButton ActionE
vent改变文本JTextComponent TextEvent选定多项
JlistListSelectionEvent选定一个新项
JComboBoxItemEvent,ActionEvent用户行为事件源事件类型点击按钮JB
utton(按钮)对象ActionEvent在文本域按下回车JTextField(文本域)对象ActionEvent改变
文本JTextField(文本域)对象TextEvent改变文本JTextArea(文本区)对象TextEvent窗口
打开、关闭、最小化、还原或正在关闭Window及其子类对象WindowEvent在容器中添加或者删除组件Container
的所有子类对象ContainerEvent组件移动、改变大小、隐藏或显示Component的所有子类对象Component
Event组件获取或者失去焦点Component的所有子类对象FocuseEvent按下或者释放键Component的所
有子类对象KeyEvent鼠标按下、释放、点击、进入或离开组件、移动或者拖动Component的所有子类对象MouseEv
ent事件委托处理模型需要弄清楚的问题事件源与事件的问题事件源就是GUI组件,在画界面时创建完成事件由事件源自动产生如
何实现监听器?每一种事件类都有对应的监听接口,要实现监听器就需要实现相应的监听接口。实现监听接口就需要实现监听接口中的事件处理
方法。事件、事件监听器和监听器方法事件类 监听器接口 监听器方法(处理器)ActionEvent ActionListe
ner actionPerformed(ActionEvent)KeyEvent KeyListener keyPressed
(KeyEvent)keyReleased(KeyEvent)
keyTyped(KeyEvent)WindowEvent
WindowListener windowClosing(WindowEvent) windowOpened(WindowE
vent) windowIconified(WindowEvent) windowDeiconified(WindowEv
ent) windowClosed(WindowEvent) windowActivated(WindowEvent)
windowDeactivated(WindowEvent)为事件源注册监听器事件源产生的某种事件只能被事先注册给该事件源的
监听器监听到。注册方法:每个事件源都有若干个注册方法来完成注册注册方法一般为:addXXXListener比如:JButt
on,能够产生ActionEvent,对应的监听接口为ActionListener,那么,JButton的注册方法为addActi
onListner动作事件动作事件用于表示需要执行某种命令的信号。按钮在用鼠标点击时会产生ActionEvent事件。 源
程序:TestActionEvent.java动作事件类:ActionEvent常用方法:publicObjectget
Source()获得产生这个事件的事件源对象动作事件动作事件监听接口:ActionListener事件处理方法publi
cvoidactionPerformed(ActionEvente)事件源的注册方法publicvoidaddAct
ionListener(ActionListenerlis)练习实现一个图形化用户界面,在框架上顺序摆放三个按钮:Butto
n1、Button2和Button3,在点击按钮时在控制台上显示哪个按钮被点击。窗口事件处理JFrame以及其他Window类
的子类都可以产生WindowEvent事件。当窗口打开、正在关闭、关闭、激活、失效、最小化和还原时都会产生WindowEvent
。因此,对应的WindowListener中需要有7个事件处理方法。示例:TestWindowEvent.java窗口事件处理
窗口事件类:WindowEvent窗口事件监听接口:WindowListenerpublicvoidwindowOpen
ed(WindowEvente)用于处理窗口打开时情况。publicvoidwindowClosing(Windo
wEvente)用于处理窗口正在关闭时情况。publicvoidwindowClosed(WindowEvente
)用于处理窗口关闭时情况。publicvoidwindowActivated(WindowEvente)用于处理
窗口激活时情况。publicvoidwindowDeactivated(WindowEvente)用于处理窗口失效时
情况。publicvoidwindowIconfied(WindowEvente)用于处理窗口最小化时情况。pub
licvoidwindowDeiconfied(WindowEvente)用于处理窗口还原时情况。窗口事件处理事件
源的注册方法publicvoidaddWindowListener(WindowListenerlistener)注意
:在实现监听接口时,监听器必须实现接口中所有的事件处理方法。事件裁剪类(适配器)java.awt.event.包中“Ad
apter”类,称为事件剪裁类。java.awt.event.包中的每个包容方法超过一个的Listener监听者接口都有一个A
dapter类与之对应,例如对应MouseListener接口有一个MouseAdapter类。这些Adapter类就是把它们对
应接口中的所有方法用空的方法体实现。这样我们的程序就可以以Adapter类为父类,继承并覆盖这些空方法中对我们有用的那些。示例:
TestWindowAdapter.java总结图形化程序设计整体思路:画界面选择合适的容器组件,为容器设置合适的布局,将组件添加到容器中。实现交互根据需要实现的功能,确定要处理的事件源和事件类型实现监听器(实现事件处理方法,完成需要实现的功能)将监听器注册给事件源。总结学习思路:了解各种组件特性:外观能够产生的事件,以及产生的时机注册方法熟悉各种事件对应的监听接口
献花(0)
+1
(本文系在羡智库原创)