Java事件监听器


在java中,事件的处理非常重要,如响应键盘的输入,鼠标的点击,窗口的移动等等。java事由事件类和监听接口组成,算定义一个事件前,必须提供一个事件的监听接口以及一个事件类。java中监听接口是继承自java.util.EventListener的,事件类继承自java.util.EventObject。很多基本的事件系统已经为我们定义好了,我们只要学会调用即可,但是为了更加灵活地满足特定的要求,我们有时候需要自定义事件。

java事件监听器即一组动作接口。如键盘事件KeyEvent对应的接口是:

public interface KeyListener extends EventListener {

  public void keyPressed(KeyEvent ev);

  public void keyReleased(KeyEvent ev);

  public void keyTyped(KeyEvent ev);

  }

这个监听器定义了三个动作,键盘按下去调用KeyPressed方法,键盘抬起来调用KeyReleased,键盘被敲击一次调用KeyTyped。

事件监听器是需要注册才能使用的,注册方法如下:

public void add<LitenerType>(<ListenerType>listener);

事件监听器也可以注销,注销方法如下:

public void remove<ListenerType>(<ListenerType>listener);

事件监听器机制是观察者模式的一种,通过把事件源和事件处理流程以监听器的方法隔离开来,减少了主流程与被触发事件的执行流程间的耦合,便于代码的维护和事件处理流程的扩展。

在事件监听机制中,涉及三个角色:事件、发布者和监听器

事件:在事件源和事件监听器之间传递信息的对象实体。

发布者:在事件发生后,负责把事件发布到监听者的对象。

监听者:监听事件,并进行处理或转发的对象。

java中提供了事件监听器实现的框架,使用java事件中的事件监听器,需要熟悉以下几个类或接口:

1.EventObject:事件的基类,在java中自定义事件时需要继承的基类,其定义了事件源---Object类型的属性,可以把发生事件所在的类实例的引用传递过来,以便于在事件处理流程中使用(如果有使用要求的话)。在自定义的事件中,还可以定义自己应用所需的其他属性。

2.EventListener:自定义事件监听器必须实现的接口,没有具体方法,只起到标识作用。

AWT事件及其相应的监听器接口(1)

下表列出了所有AWT事件及其相应的监听器接口,一共10类事件,11个接口。下面这张表应能牢牢记住。

事件类别 描述信息 接口名 方法
 ActionEvent 激活组件   ActionListener  actionPerformed(ActionEvent)
 ItemEvent 选择了某些项目   ItemListener  itemStateChanged(ItemEvent)
 MouseEvent 鼠标移动   MouseMotionListener  mouseDragged(MouseEvent)
 mouseMoved(MouseEvent)
鼠标点击等   MouseListener  mousePressed(MouseEvent)
 mouseReleased(MouseEvent)
 mouseEntered(MouseEvent)
 mouseExited(MouseEvent)
 mouseClicked(MouseEvent)
 KeyEvent 键盘输入   KeyListener  keyPressed(KeyEvent)
 keyReleased(KeyEvent)
 keyTyped(KeyEvent)
 FocusEvent 组件收到或失去焦点   FocusListener  focusGained(FocusEvent)
 focusLost(FocusEvent)
 AdjustmentEvent 移动了滚动条等组件   AdjustmentListener  adjustmentValueChanged(AdjustmentEvent)
 ComponentEvent 对象移动缩放显示隐藏等   ComponentListener  componentMoved(ComponentEvent)
 componentHidden(ComponentEvent)
 componentResized(ComponentEvent)
 componentShown(ComponentEvent)
 WindowEvent 窗口收到窗口级事件   WindowListener  windowClosing(WindowEvent)
 windowOpened(WindowEvent)
 windowIconified(WindowEvent)
 windowDeiconified(WindowEvent)
 windowClosed(WindowEvent)
 windowActivated(WindowEvent)
 windowDeactivated(WindowEvent)
 ContainerEvent 容器中增加删除了组件   ContainerListener  componentAdded(ContainerEvent)
 componentRemoved(ContainerEvent)
 TextEvent 文本字段或文本区发生改变   TextListener  textValueChanged(TextEvent)

  • 1
  • 2
  • 下一页

相关内容

    暂无相关文章