java事件监听器--java
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
itemStateChanged(ItemEvent e) mouseDragged(MouseEvent e) mouseMoved(MouseEvent e) mouseClicked(MouseEvent e) mouseEntered(MouseEvent e) mouseExited(MouseEvent e) mousePressed(MouseEvent e) mouseReleased(MouseEvent e) keyPressed(KeyEvent e)
ActionEvent 单击事件类 ActionListener 单击事件接口 TextEvent文本框事件类 TextListener文本框事件接口 ItemEvent选择事件类 ItemListener选择事件接口 MouseEvent鼠标事件类 MouseMotionListener
actionPerformed(ActionEvent e)
(2)事件处理方法
当将一个接口于某个类联系起来时, 当将一个接口于某个类联系起来时,该类必须处理在那个接口中所包 含的所有的方法。 中只有一个方法: 含的所有的方法。在接口 ActionListener 中只有一个方法: actionPerformed( ) 。所有实现 ActionListener 的类都必须实现这一方法。 的类都必须实现这一方法。 如: public void actionPerformed(ActionEvent evt) { // 事件处理程序 }
获得产生该事件的组件类型, 或使用运算符 instanceof 获得产生该事件的组件类型,以决定执行哪一 个组件的事件响应程序。 个组件的事件响应程序。
(1)动作事件(ActionEvent) )动作事件( )
2、使用方法
发生在用户完成了使用下列组件之一的动作: 发生在用户完成了使用下列组件之一的动作: Button , CheckBox , ComboBox , TextField , RadioButton • 类为了能够处理这些事件必须实现接口 ActionListener 。 • 每个产生一个动作事件的组件上要调用方法 addActionListener( ) • 方法 actionPerformed(ActionEvent evt) 是接口 ActionListener 惟一的 方法采用如下格式: 方法采用如下格式: public void actionPerformed(ActionEvent evt) { //…… } • 在 ActionEvent 对象上可以使用的方法: 对象上可以使用的方法: • getSource( ) 获取产生事件组件的组件名 • getActionCommand( ) 获取与组件有关的文本,如命令按钮的标签 获取与组件有关的文本,
• addMouseMotionListener( ) 可用于所有可视化组件 对象, 例:下面语句创建一个 Button 对象,并将它与动作事件监听器联系起来 Button button = new Button( “OK” ) ; button . addActionListener ( this ) ; //this 指明当前类就是事件监听器
Байду номын сангаас
产生事件 (ActionEvent) 用户操作 (单击按钮) 事件源 (Button) 注册 事件监听者 委托执行 事件监听程序 (执行ActionListener接口 actionPerformed方法)
JDK1.1的委托事件模型
为按钮注册事件监听程序
public void addActionListener(ActionListener handler)
(2)调整事件(AdjustmentEvent)
组件时发生调整事件。 在移动一个 ScrollBar 组件时发生调整事件。 • 为了处理这些事件,类必须实现 AdjustmentListener 接口。 为了处理这些事件, 接口。 • 每个产生一个调整事件的组件上要调用方法 addAdjustmentListener( ) • 方法 adjustmentValueChanged(AdjustmentEvent) 是该接口唯一的方法, 是该接口唯一的方法, 格式: 格式:public void adjustmentValueChanged(AdjustmentEvent evt) { //…… }
MouseEvent 鼠标事件类 MouseListener 鼠标按钮事件接口
KeyEvent键盘事件 KeyListener键盘事件接口 FocusEvent焦点事件 FocusListener焦点事件接口
keyReleased(KeyEvent e) keyTyped(KeyEvent e) focusGained(FocusEvent e) focusLost(FocusEvent e)
必须实现ActionListener接口中 actionPerformed方法
public void actionPerformed(ActionEvent e)
6.2.2 AWTEvent事件类
java.lang.Object
java.awt.event包
ActionEvent 按钮单击事件 ContainerEvent 容器事件 FocusEvent 焦点事件 InputEvent 输入事件 WindowEvent 窗口事件 KeyEvent 键盘事件 MouseEvent 鼠标事件
表6.1 Listener接口与对应的适配器(Adapter)类
接口名称 ComponentListener ContainerListener FocusListener KeyListener MouseListener MouseMotionListener WindowListener
适配器名称 ComponentAdapter ContainerAdapter FocusAdapter KeyAdapter MouseAdapter MouseMotionAdapter WindowAdapter
6.2.4 事件适配器
适配器类实现一个对应的所有接口,只是方法为空。 适配器类实现一个对应的所有接口,只是方法为空。
public abstract class WindowAdapter implements WindowListener { public void windowOpened(WindowEvent e) {} public void windowActivated(WindowEvent e) {} public void windowDeactivated(WindowEvent e) {} public void windowClosed(WindowEvent e) {} public void windowClosing(WindowEvent e) {} public void windowIconified(WindowEvent e) {} public void windowDeiconified(WindowEvent e) {} }
java.util.EventObject
ComponentEvent 组件事件
java.awt.AWTEvent 抽象事件类
ItemEvent 选择事件 TextEvent 文本框事件
图6.9 AWTEvent事件类的层次结构
6.2.3 事件类的接口
表6.1 事件类、对应的接口及接口中的方法
事件类/接口名称 ComponentEvent 组件事件类 ComponentListener 组件事件接口 ContainerEvent 容器事件类 ContainerListener 接口中声明的方法 componentMoved(ComponentEvent e) componentHidden(ComponentEvent e) componentResized(ComponentEvent e) componentShown(ComponentEvent e) componentAdded(ContainerEvent e) componentRemoved(ContainerEvent e) windowOpened(WindowEvent e) windowActivated(WindowEvent e) WindowEvent 窗口事件类 WindowListener 窗口事件接口 windowDeactivated(WindowEvent e) windowClosing(WindowEvent e) windowClosed(WindowEvent e) windowIconified(WindowEvent e) windowDeiconified(WindowEvent e) 产生事件的用户操作 移动组件时 隐藏组件时 改变组件大小时 显示组件时 添加组件时 移动组件时 打开窗口时 激活窗口时 窗口失去焦点时 关闭窗口时 关闭窗口后
事件处理
Frame Panel Button 单击事件
产生事件 用户操作 (单击按钮) 事件源 (Button) 执行组件的 事件处理程序 容器 (Panel) 执行容器的 事件处理程序 外层容器 (Frame) 执行容器的 事件处理程序
Frame Panel Button
Panel和Frame的 事件处理程序 Action事件对象 Action事件处理程序 actionPerformed(ActionEvent e) { …… }
声明可响应动作事件类的格式:
[修饰符 class 类名 extends 容器类类名 implements 事件监听器 修饰符] 修饰符 例如: 例如: public class abc extends Frame implements ActionListener 说明在 abc 类中可响应动作事件 public class def extends Applet impements KeyListener 说明在 def 类中可以响应键盘事件 注意: 注意:基本的事件监听器在包 java.awt.event 中,因此程序中要引入该包
(1)设置组件
当你将一个类用作事件监听器时,你已经设置好一个特定的事件类型, 当你将一个类用作事件监听器时,你已经设置好一个特定的事件类型, 它会用该类进行监听。接下来的操作是: 它会用该类进行监听。接下来的操作是:一个匹配的监听器必须被加入到该 组件中 组件被创建之后, 组件被创建之后,可以在组件上调用如下方法来将监听器与它联系起来 • addActionListener( ) • addAdjustmentListener( ) • addFocusListener( ) • addItemListener( ) • addKeyListener( ) • addMouseListener( ) • addWindowsListener( ) 可用于 Button,Check, TexyField 等组件 可用于 ScrollBar 组件 可用于所有可视化组件 可用于 Button,CheckBox 等组件 可用于所有可视化组件 可用于所有可视化组件 可用于 Window,Frame等组件 等组件
单击按钮, 文本行中单击回车键, 双击列表框 选择菜单项时 文本行、文本区中修改内 容 选择复选框、选择框, 单击列表框, 选中带复选框的菜单项 鼠标 鼠标 单击鼠标时 鼠标进入 鼠标离开 按下鼠标时 放开鼠标时 按下键盘时 释放键盘时 获得焦点时 失去焦点时
textValueChanged(TextEvent e)
注意: 、在图形用户界面上只有一个组件具有动作事件监听器时, 注意:1、在图形用户界面上只有一个组件具有动作事件监听器时,这个 actionPerformed( ) 方法可以用来响应由该组件产生的一个事件。 方法可以用来响应由该组件产生的一个事件。 2、如果超过一个组件具有动作事件监听器时,你必须找出哪个组 、如果超过一个组件具有动作事件监听器时, 件被使用而产生了动作。 件被使用而产生了动作。 某个类型的一个事件对象被传递给事件处理方法。 某个类型的一个事件对象被传递给事件处理方法。这个对象的方法 getSource( ) 可以用来判断出发送给事件的组件名。 可以用来判断出发送给事件的组件名。