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执行。
参考文章
https://www.cnblogs.com/zmwf/p/9103207.html
https://zhidao.baidu.com/question/1705828684187412460.html
JAVA——监听器ActionListener与MouseListener执行顺序相关推荐
- java编程顺序,Java种的完整构造执行顺序(转)
Java类的完整构造执行顺序(转) 转自:http://hi.baidu.com/zhengguobest/blog/item/09a97f0e0eba7dca7bcbe1b1.html 如果父类有静 ...
- 举例说明Java中代码块的执行顺序
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 结论 这里先把整理好的结论抛给大家,然后我在写个程序来验证我们的结论.在Java类被new的 ...
- java监听器ActionListener 的入门小应用
在我们学习java图形化用户页面的时候我们就会使用各种监听器 ActionListener就是一个,当我们想实现例如点击 登录 就去判断账号和密码是否正确来判断下一步时我们就会用可以使用这个监听器来监 ...
- java顺序结构类型,Java类的完整构造执行顺序
这里只说一个完整的结果,至于为什么是这样的顺序,可以参考我以前的文章:深入剖析java类的构造方式 如果父类有静态成员赋值或者静态初始化块,执行静态成员赋值和静态初始化块 如果类有静态成员赋值或者静态 ...
- Java中finally和return执行顺序
思考一个问题 Java异常捕获机制try-catch-finally块中的finally语句是否一定会被执行?起码在以下两种情况下是不会被执行的: 1.在try之前就返回了,try没有执行到. 2.t ...
- java 多线程Callable和Runable执行顺序问题详解
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt125 毫无疑问 Runnable会进行异步执行,此处不多说,主要说明Call ...
- java类与继承的执行顺序
1.子类 public class TestClassLife extends TestClassLifeSuper { public TestClassLife() {System.out.prin ...
- 面试官:Java中线程是按什么顺序执行的?
本文分享自华为云社区<[高并发系列]Java中线程到底是按什么顺序执行的?你了解的可能是错误的!>,原文作者:冰 河 . Java中线程的执行顺序可能与你想的不一样!一文解密多线程的执行顺 ...
- java listener 实现机制_Java监听器机制ServletContextListener实现执行某方法函数
Java监听器机制ServletContextListener实现执行某方法/函数 在web项目中有很多时候需要在项目启动时就执行一些方法,而且只需要执行一次,比如:加载解析自定义的配置文件.初始化数 ...
最新文章
- Altair Compose 2020直装中文版
- 【安全工具】浅谈编写Java代码审计工具
- 【POJ 2485】 Highways
- OpenCV距离变换和分水岭算法的图像分割
- P2598-狼和羊的故事【最大流,最小割】
- 洛谷 P1219 八皇后题解
- Android 打开蓝牙流程
- iOS开发GCD(3)-数据安全
- c语言图书馆管理系统源码,C语言图书馆管理系统源代码
- Everything搜索语法
- Win10系统IE浏览器设置代理上网的方法
- python爬虫影评_Python爬虫(二十)_动态爬取影评信息
- 2017,我对自己狠一点,也要对自己好一点
- 王左中右致出版商的信件稿
- 斗地主农民手牌的58684015种可能性
- 高通平台WIFI-去掉信号标识上面的叹号和叉叉issue
- 亚商投顾早餐FM/0905北交所首只指数、两融制度要来了
- 为什么c语言没有输出
- 9. 细节见真章,Formatter注册中心的设计很讨巧
- GitHub Desktop使用说明(2)快捷键
热门文章
- 计算机应用基础 专2018秋,广东开放大学远程教育专科2018年秋计算机应用基础Word模块测试.pdf...
- python输入姓名输出欢迎_python 3 基础之输入输出
- html css js调用dll,js调用Activex的dll
- python zipfile_Python中的zipfile模块使用详解
- 标记页面区分渠道php,PM必懂的前端知识
- java string 反序列化_如何将java.lang.String的空白JSON字符串值反序列化为null?
- 计算机管理器win,进入windows启动管理器,win启动管理器
- 计算机软件中os具有什么功能,[计算机软件及应用]OS第三章1.ppt
- linux签名服务器,linux – 如何在远程服务器上使用gpg签名密钥?
- 配置ssd为缓存_撕下贴牌的画皮!快速确定SSD性能等级,关键在这3步