学习Java用的是《Java核心技术》第9版。关于Java的时间监听机制,很有趣,这儿做一个记录。
Java中对事件处理的方式是:其控制事件源(event source),例如,按钮或滚动条,到事件监听器(event listener)的传递过程,并将任何对象指派给事件监听器。当然,应该选一个能便于响应事件的对象。
事件源有一些向其注册事件监听器的方法。当一个事件源产生一个事件时,它会向它的所有注册的事件监听器发送一个通告。
Java将事件相关信息都封装在一个事件对象(event object)中,所有的事件对象都派生于 java.util.EventObject 类。当然,每个事件类型还有子类,例如,ActionEvent,WindowEvent.
不同的事件源会产生不同类别的事件。例如,按钮可以发送一个ActionEvent对象,窗口可以发送WindowEvent对象。
那么下面,给出AWT事件处理机制的概要:
- 监听器对象是一个实现了特定监听器接口(listener interface)的实例
- 事件源是一个能够注册监听器对象并发送事件对象的对象
- 当事件发生时,事件源将事件发送给其注册的所有事件监听器
- 监听器对象将利用事件对象中的信息决定如何对事件做出响应
下面是监听器的一个实例:
ActionLlistener listener = ...;
JButton button = new JButton("test");
button.addActionLlistener(listener);现在,只要按钮产生一个“动作事件”,listener对象就会得到一个通告。对于按钮来说,“动作事件”就是点击按钮。
为了实现ActionListener接口,监听器类必须有一个actionPerformed方法,该方法接受一个ActionEvent对象参数。
public class MyListener implements ActionListener{
...
public void actionPerformed(ActionEvent event){
// reaction to button click goes here
}
}
只要用户点击按钮,JButton的对象就会创建一个ActionEvent对象,然后调用listener的actionPreformed传递事件对象。可以将多个监听器对象,添加到一个像按钮这样的事件源上。这样,只要点击按钮,按钮就会调用所有的监听器的actionPreformed方法。
本文介绍了Java中的事件监听机制,包括事件源、事件监听器及事件对象等核心概念。通过具体示例说明了如何实现ActionListener接口来响应按钮点击事件。
3744

被折叠的 条评论
为什么被折叠?



