首页 > 软件编程 > java > 监听器ActionListener与MouseListener执行顺序

Java监听器ActionListener与MouseListener的执行顺序说明

作者:Starzkg

这篇文章主要介绍了Java监听器ActionListener与MouseListener的执行顺序说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
  • 监听器(Listener) :监听器用于监听web应用中某些对象、信息的创建、销毁、增加,修改,删除等动作的发生,然后作出相应的响应处理。当范围对象的状态发生变化的时候,服务器自动调用监听器对象中的方法。常用于统计在线人数和在线用户,系统加载时进行信息初始化,统计网站的访问量等等。
  • ActionListener :ActionListener用于接收操作事件的侦听器接口。对处理操作事件感兴趣的类可以实现此接口,而使用该类创建的对象可使用组件的 addActionListener 方法向该组件注册。在发生操作事件时,调用该对象的 actionPerformed 方法。
  • MouseListener :处理鼠标事件的类要么实现此接口(及其包含的所有方法),要么扩展抽象类 MouseAdapter(仅重写所需的方法)。 然后使用组件的 addMouseListener 方法将从该类所创建的侦听器对象向该组件注册。当按下、释放或单击(按下并释放)鼠标时会生成鼠标事件。鼠标光标进入或离开组件时也会生成鼠标事件。发生鼠标事件时,将调用该侦听器对象中的相应方法,并将 MouseEvent 传递给该方法。
  • MouseAdapter :用于接收鼠标事件的抽象适配器类。 这个类中的方法是空的。 此类作为创建侦听器对象的方便而存在。
  • JAVA 1.8
  • Eclipse 201803
  • import java.awt.*; import java.awt.event.*; import javax.swing.*; public class GUIDEMO { public static void main(String[] args) { // TODO 自动生成的方法存根 EventQueue.invokeLater(() -> JFrame frame = new MyFrame(); frame.setTitle("DrawTest"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); System.out.println("Hello World"); public void print(Object obj) { System.out.println(obj); class MyFrame extends JFrame { private static final int DEFAULT_WIDTH = 400; private static final int DEFAULT_HEIGHT = 400; public MyFrame() { setSize(DEFAULT_WIDTH,DEFAULT_HEIGHT); setLocation(100,200); setLayout(new FlowLayout()); JButton but=new JButton("DEMOButton"); but.addActionListener(event-> { print("action"); but.addMouseListener(new MouseAdapter(){ public void mouseEntered(MouseEvent e) { print("enter"); public void mouseExited(MouseEvent e) { print("exit"); public void mouseClicked(MouseEvent e) { print("click"); add(but); public void print(Object obj) { System.out.println(obj); public Dimension getPreferredSize() { return new Dimension(DEFAULT_WIDTH, DEFAULT_HEIGHT); }

    ActionListener先于MouseListener执行

    注:某教学视频中在JAVA 1.6环境下ActionListener后于MouseListener执行。

    鼠标监听器和动作监听器区别和联系

    1.英文名:MouseListener和ActionListener

  • 同为接口,继承同一个父类EventListenr
  • 用时需定义类实现接口
  • MouseListener :可用于鼠标的单击、按下、释放、进入、离开,可以用于界面、组件类
  • ActionListener :用于组件上面(JPanel不可以,JFrame也不可以,JLabel也不可以)
  • JButton可以,JTextField也可以
  • MouseListener 在功能上更加多样化,在加的对象上也更有选择性更广泛;
  • ActionListener 在功能上相对单一,只能适用于几种简单的组件上且都为单击事件。
  • ActiMouseListener 有e.getActionCommand()方法,而ActionListener没有,所以不能判断
  • 究竟按下或者释放的是哪个按钮,所以按钮多的话,不能用MouseListener。

    //MouseListener部分: public void mousePressed(MouseEvent e) { // TODO Auto-generated method stub g.setColor(Color.blue); draw(100,400,400,400,400,100,10); draw(400,100,400,400,700,400,10); draw(700,400,400,400,400,700,10); draw(400,700,400,400,100,400,10); //同样的功能ActionListener部分: if(e.getActionCommand().equals("谢宾斯基三角形")){ g.setColor(Color.blue); draw(100,400,400,400,400,100,10); draw(400,100,400,400,700,400,10); draw(700,400,400,400,400,700,10); draw(400,700,400,400,100,400,10);

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

    您可能感兴趣的文章:
  • SpringMVC五大组件与执行原理分析总结
    SpringMVC五大组件与执行原理分析总结
    2023-01-01
  • Spring @Bean注解深入分析源码执行过程
    Spring @Bean注解深入分析源码执行过程
    2023-01-01
  • 解读classpath读取resources目录下的文件
    解读classpath读取resources目录下的文件
    2023-01-01
  • 解决SpringBoot的@DeleteMapping注解的方法不被调用问题
    解决SpringBoot的@DeleteMapping注解的方法不被调用问题
    2023-01-01
  • Java Listener监听器使用规范详细介绍
    Java Listener监听器使用规范详细介绍
    2023-01-01
  • springcloud eureka切换nacos的配置方法
    springcloud eureka切换nacos的配置方法
    2023-01-01
  • Java泛型通配符的使用详解
    Java泛型通配符的使用详解
    2023-01-01
  • Java Retrofit源码层深入分析
    Java Retrofit源码层深入分析
    2023-01-01
  • 美国设下计谋,用娘炮文化重塑日本,已影响至中国
    美国设下计谋,用娘炮文化重塑日本,已影响至中国
    2021-11-19
  • 时空伴随者是什么意思?时空伴随者介绍
    时空伴随者是什么意思?时空伴随者介绍
    2021-11-09
  • 工信部称网盘企业免费用户最低速率应满足基本下载需求,天翼云盘回应:坚决支持,始终
    工信部称网盘企业免费用户最低速率应满足基本下载需求,天翼云盘回应:坚决支持,始终
    2021-11-05
  • 2022年放假安排出炉:五一连休5天 2022年所有节日一览表
    2022年放假安排出炉:五一连休5天 2022年所有节日一览表
    2021-10-26
  • 电脑版 - 返回首页

    2006-2023 脚本之家 JB51.Net , All Rights Reserved.
    苏ICP备14036222号