Swing学习笔记3---事件
来源:互联网 发布:数据恢复软件免费版 编辑:程序博客网 时间:2024/06/06 04:17
概述:
自从JDK1.1之后一改以前版本的事件处理模式,目前都是以委托事件模式(Delegation Event Model)来处理用户所触发的事件。
当用户激活的事件不是我们所想要的时,就不加任何处理,如此一来就可以增加系统效率,整个处理结构也会清楚许多。因此Delegation Event Model就像一部注册机,可以让用户注册所有想要捕获的事件。
事件处理总共要注意三件事:
1.Source如何,也就是什么组件要被处理,如按钮或CheckBox。
2.什么样的事件要被处理,如按下按键或是抬起按键,通过实现相关的监听器(接口)实现,也就是上面的注册机制。
3.编写处理事件的代码。
处理事件的标准操作:每种EventListener都是一种Interface,里面只有定义这个EventListener的方法,当要处理事件时,必须在类前面先实现该相应接口,然后在这个类中,把要处理事件的程序代码写在接口的方法中。
还有其他模式,如利用Inner Class,或利用Adapter类等等。
针对某一个组件作事件处理,属于“High-Level”事件
而对于控制鼠标键盘的事件处理,属于“Low-Level”事件
事件处理范例:
1.事件处理多种实现方法:
a.实现监听接口:必须实现借口的所有方法
b.继承Adapter类:限制在于java不支持多重继承
c.利用Inner class匿名类:解决了Adapter类无法多重继承,即Inner class是多重继承的一个解决方案
d.专门定义一个负责事件处理部分的类: 思路清晰,但当组建数量上升时难以阅读
多种变形写法,主要就是必须将addXXXListener()方法传入XXXEvent里去,而如何获得这个XXXEvent,就看个人怎么做了。
2.相同组件事件的处理:
多个组件添加了同一事件处理,如何识别组件呢?
对于EventObject,可以用getSource()方法得到。
对于ActionEvent,可以用getCommand()或getSource()方法得到(ActionEvent extends EventObject)。
3.鼠标事件处理:
a.MouseListener:针对鼠标按键与位置的检测
b.MouseMotionListener:针对鼠标坐标与拖拽作操作
4.键盘事件处理:
KeyListener:
注意getKeyCode()方法可以得到每个按钮的对应码,但这个方法在keyTyped()上是无法检测出来的,因为keyTyped()只管用户输入的字符,算是比较高层(High-Level)事件的方法。故一定要将getKeyCode()方法写在keyPressed()或keyReleased()中方才有效,因为这两个方法是处理比较低层(Low-Level)的方法。
另外,getKeyModifiersText()方法可以返回修饰符的字符串,如“Shift”或“Ctrl+Shift”,不过要先传入modifiers参数。可使用getModifiers()方法来得到modifiers参数。这个方法定义在InputEvent中,被KeyEvent继承,故必须将以上两方法放在keyPressed()或keyReleased()方法中才有效。
- Swing学习笔记3---事件
- Java学习笔记3-Swing监听器
- swing学习笔记
- SWING 学习笔记(1)
- Swing Hacks 学习笔记
- Swing学习笔记
- java swing学习笔记
- Java Swing 学习笔记
- java Swing学习笔记
- java Swing学习笔记
- Java Swing学习笔记
- 学习笔记-Java swing
- swing awt学习笔记
- Java学习笔记之swing 单击事件mouseClicked与一般事件actionPerformed区别
- Swing学习笔记1---概述
- Swing 自定义控件学习笔记
- java swing 学习笔记(一)
- java swing 学习笔记(二)
- 213213213
- 对注册表进行简单的操作
- 中英文语音合成与中文语音识别技术在c#中的应用
- Final类型数据的初始化
- 子类只能覆盖超类中“可以直接访问”的方法
- Swing学习笔记3---事件
- 游戏童年之斗草
- 你想跳槽吗?
- 防止盗链下载问题
- Win2K3 Unattended Installations
- 电影网站实现防盗链的方法
- 简单的防盗链(代码)
- 带进度条的文件上传控件使用小结
- Java里的线程模型