事件:Java语言将每一个键盘或鼠标的操作定义为一个“事件”
事件响应:当事件发生时程序应该作出何种响应
事件处理的模型:
- 事件源:产生事件的组件加叫事件源
- 事件对象:描述系统中发生了什么的对象
- 事件监视器:对事件进行处理的类
Java有20多个预定义的事件类,它们包含了所有组件上可能发生的事件。每一个事件都有一个相应的事件接口,事件接口中的事件处理方法完成对事件的处理
事件处理一般方法:
- 创建将要产生事件的组件对象
- 构造实现相应事件监视器接口的类,并创建事件监听器对象
- 为组件对象增加事件监听器对象:
组件对象.addXxxListener(事件监听器对象);
如:button.addActionListener(this);
注意:接口中的方法都含有所产生的事件对象参数,使用该参数的getSource()方法可以得到产生该事件的事件源
例如:public void actionPerformed(ActionEvent evt);
事件处理
ActionEvent 与 ActionListener
当单击按钮、在文本域回车、选择组合框中的项目、选择菜单项时产生该事件
ActionListener接口中的方法:
- void actionPerformed(ActionEvent);
该事件在实际应用中经常被处理
ActionEvent中的常用方法:
- String getActionCommand();
//获得与该动作相联系的组件的命令字符串名称,组件对象可使用
setActionCommand(String)方法进行设置,默认的命令字符串名称是组件的标签名称 //使用该方法可实现不同组件共用同一段处理代码
ItemEvent 与 ItemListener
当单选按钮、复选按钮、下拉列表框中的项目状态发生变化时产生该事件
ItemListener接口中的方法:
- void itemStateChanged(ActionEvent);
ItemEvent中的常用方法:
- Object getItem();
//返回返回受该事件影响的项目对象,据需要可将Object转换为相应的类型
int getStateChange();
//返回项目状态发生变化的类型,取值:
ItemEvent.SELECTED
ItemEvent.DESELECTED
WindowEvent 与 WindowListener
WindowListener接口中的方法:
-
void windowActivated(WindowEvent);
//处理窗口被设置为当前活动窗口时触发的事件 -
void windowDeactivated(WindowEvent);
//处理窗口被设置为非活动窗口时触发的事件 -
void windowIconified(WindowEvent);
//处理窗口最小化时触发的事件 -
void windowDeiconified(WindowEvent);
//处理窗口从最小化变为正常大小时触发的事件 -
void windowCloseing(WindowEvent);
//处理用户试图关闭窗口时触发的事件 -
void windowClosed(WindowEvent);
//处理窗口被关闭时触发的事件
WindowAdapter适配器
windowListener接口中含有较多的方法,实现时比较麻烦。为此,Java提供了适配器类WindowAdapter,该类实现了WindowListener接口,可用该类或其子类创建监听器
注意:凡含两个以上方法的监听器都有对应的适配器
适配器类实现一个对应的接口,只是方法为空
事件适配器类(Adapter)
只实现接口所需要处理的方法<–>通过覆盖
介于接口中的其它方法:系统会提供默认的方法
事件适配器类与事件监听器接口的区别:
- 利用事件适配器类,只需实现所需处理的方法
- 利用事件监听器接口,必须实现所有的方法
ListenSelectionEvent 与 ListSelectionListener
当列表框中的项目发生变化时产生该事件
ListSelectionListener接口中的方法:
- void valueChanged(ListSelectionEvent);
处理事件时常使用列表框(JList)对象本身提供的一些方法
ChangeEvent 与 ChangeListener
当进度条,滑动条、微调器、标签窗格等组件的状态发生变化时产生该事件
ChangeListener接口中的方法:
- void stateChanged(ChangeEvent);
FocusEvent 与 FocusListener
当组件获得或失去输入焦点时产生该事件
FocusListener接口中的方法:
- void focusGained(FocusEvent);
- void focusLost(FocusEvent);
FocusEvent中的常用方法:
- Component getOppositeComponent();
FocusAdapter适配器
MouseEvent 与 MouseListener
当在组件上进行鼠标基本操作时产生该事件
MouseListener接口中的方法:
- void mousePressed(MouseEvent);
- void mouseReleased(MouseEvent);
- void mouseClicked(MouseEvent);
- void mouseEntered(MouseEvent);
- void mouseExited(MouseEvent);
MouseEvent中的常用方法:
- int getButton(); //NOBUTTON,BUTTON1,BUTTON2,BUTTON3
- boolean isAltDown();
- boolean isControlDown();
- boolean isShiftDown();
- int getClickCount();
- Point getPoint();
- int getX();
- int getY();
- boolean isPopupTrigger();
//是否是触发弹出式菜单的鼠标操作
MouseAdapter适配器
MouseEvent 与 MouseMotionListener
当在组件上进行鼠标拖动或移动时产生该事件
MouseMotionListener接口中的方法:
- void mouseDragged(MouseEvent);
- void mouseMoved(MouseEvent);
MouseMotionAdapter适配器
KeyEvent 与 KeyListener
当组件上发生击键时产生该事件
KeyListener接口中的方法:
- void keyPressed(KeyEvent);
- void keyReleased(KeyEvent);
- void keyTyped(KeyEvent);
KeyEvent中的常用方法:
- char getKeyChar(); //返回字符键值
- int getKeyCode(); //返回整数键值
- boolean isAltDown();
- boolean isControlDown();
- boolean isShiftDown();
注意:KeyEvent中定义了表示键的常量,如VK_l
KeyAdapter适配器