8)事件编程的基本规则:
(1)组件对事件的响应形式:忽略它(本类不实现对应的监听器接口)或编程事件函数以处理它(可根据应用需要替换某一个组件的相应缺省事件处理函数,从而响应用户对该组件的操作。本类实现某类事件对应的监听器接口,并实现对应的响应函数),也可屏蔽它(将其事件响应函数体置空)。
(2)事件响应类(监听器)可以实现多个监听器接口,以响应多组不同事件,从而可使同一个组件可以注册多种事件。
(3)利用事件响应函数中的事件对象获取事件产生时的相关信息(event.getSource())事件源对象,event.getX(), event.getY(),事件产生时的鼠标位置,event.getActionCommand(),获取组件的字符串名称。
9)各个事件监听器接口
ActionListener
使用它的常见AWT类 Button, List, TextField
接口定义的方法
public void actionPerformed(ActionEvent e)
添加到组件的方法
Obj.addActionListener(ActionListener l)
AdjustmentListner
使用它的常见AWT类 ScrollBar
接口定义的方法
public void adjustmentValueChanged(AdjustmentEvent e)
添加到组件的方法
Obj.addAdjustmentListener(AdjustmentListener l)
ComponentListener
使用它的常见AWT类
接口定义的方法
public void componentResized(ComponentEvent e)
public void componentMoved(ComponentEvent e)
public void componentShown(ComponentEvent e)
public void componentHidden(ComponentEvent e)
添加到组件的方法
Obj.addComponentListener(ComponentListener l)
ContainerListener
使用它的常见AWT类
接口定义的方法
public void componentAdded(ContainerEvent e)
public void componentRemoved(ContainerEvent e)
添加到组件的方法
ItemListener
使用它的常见AWT类 Checkbox, Choice, List
接口定义的方法
public void itemStateChanged(ItemEvent e)
添加到组件的方法
FocusListener
使用它的常见AWT类
接口定义的方法
public void focusGained(FocusEvent e)
public void focusLost(FocusEvent e)
添加到组件的方法
KeyListener
使用它的常见AWT类
接口定义的方法
public void keyTyped(KeyEvent e)
public void keyPressed(KeyEvent e)public void keyReleased(KeyEvent e)
添加到组件的方法
MouseListener
使用它的常见AWT类
接口定义的方法
public void mouseClicked(MouseEvent e)
public void mousePressed(MouseEvent e)
public void mouseReleased(MouseEvent e)
public void mouseEntered(MouseEvent e)
public void mouseExited(MouseEvent e)
添加到组件的方法
MouseMotionListener
使用它的常见AWT类
接口定义的方法
public void mouseDragged(MouseEvent e)
public void mouseMoved(MouseEvent e)
添加到组件的方法
TextListener
使用它的常见AWT类 TextField, TextArea
接口定义的方法
public void textValueChanged(TextEvent e)
添加到组件的方法
WindowListener
使用它的常见AWT类
接口定义的方法
public void windowOpened(WindowEvent e)
public void windowClosing(WindowEvent e)
public void windowClosed(WindowEvent e)
public void windowIconified(WindowEvent e)
public void windowDeiconified(WindowEvent e)
public void windowActivated(WindowEvent e)
public void windowDeactivated(WindowEvent e)
添加到组件的方法
10)事件适配器
由于事件监听器接口是Abstract类型,意谓着实现该接口的类应全部实现其各个成员函数,但实际应用中可能只需处理某些事件响应代码;此时再采用实现事件监听器接口可能会导致编程复杂。JDK中提供事件适配器方式来实现事件编程。
①每一种监听器接口有相应的适配器类,程序员只需让事件处理类从某一适配器类派出而不采用实现监听器接口的方式,这样仅需重写用户感兴趣的相应函数体代码。各个事件监听器接口相相应的事件适配器类如下:
WindowListener ------WindowAdapter
MouseListener -----MouseAdapter
MouseMotionListener-----MouseMotionAdapter。
②在事件注册时,应将监听器设为适配器的派生类(子类)对象,该适配器类中事件响应函数将被执行。(责任编辑:龚勋)
example:
你可以继承Adapters类,而且只需重写你所需要的方法。例如:
1.import java.awt.*;
2.import java.awt.event.*;
3.
4.public class MouseClickHandler extends MouseAdapter {
5.
6.// We just need the mouseClick handler, so we use
7.// the Adapter to avoid having to write all the
8.// event handler methods
9.public void mouseClicked (MouseEvent e) {
10.// Do something with the mouse click...
11.}
12.}