Java学习笔记3-Swing监听器

来源:互联网 发布:python字符串的长度 编辑:程序博客网 时间:2024/06/16 04:21

先讲一个简单的例子。点击屏幕上的按钮,将文本框的内容传到服务器上。如果是基于 web,这个很容易实现;但假如是基于桌面应用,该如何实现呢?

从观察者的模式思考,当点击按钮,按钮的状态发生变化时,将通知它的观察者,也即EventListener,观察者取得文本框的值,然后将值传给后台。

在Swing中,有相关的几个概念:

Event:事件。Event有两种,一种是前台事件,一种是后台事件

前台事件 - 这些事件需要用户直接互动。在图形用户界面中的图形组件交互的人产生的后果。例如,点击一个按钮,移动鼠标,通过键盘输入一个字符,从列表中选择一个项目,滚动页面等

后台事件 - 这些事件,需要最终用户的交互是已知的作为背景的事件。操作系统的中断,硬件或软件故障,定时器到期时,操作完成的背景事件的例子。

EventListener

内部类是处理来自用户界面的事件的一种更常见方法。EventHandler 类只处理可能使用内部类的事件的子集。不过,EventHandler 使用长期持久方案要比使用内部类更有效。同样,在同一接口被实现很多次的大型应用程序中,使用EventHandler 可以减少应用程序的磁盘和内存占用。

EventAdapter 用空方法实现了EventListener接口,这样在写EventListner时,不用再实现EventListner的全部方法,只需重写需要的方法就可以了。

EventHandler 通常是建立从用户界面 bean(事件 source)到应用程序逻辑 bean(target)的连接。大多数这类有效连接隔离了应用程序逻辑与用户界面。例如,用于从 JCheckBox 到接受 boolean 值的方法之间连接的 EventHandler 可以处理复选框状态的提取,以及处理将其直接传递给该方法,从而使该方法与用户界面层隔离。


参考文章:

http://docs.oracle.com/javase/tutorial/uiswing/events/generalrules.html

http://www.apihome.cn/api/java/EventHandler.html

http://www.yiibai.com/swing/swing_event_handling.html



0 0