Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux / 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)