Java语言学习--Swing中Button事件监听
1 前言
今天在使用Java Swing中的JButton的事件触发机制时遇到了许多问题,简单的了解了一下。
2 事件监听机制
事件监听的机制如下图所示分析。
3 代码分析
3.1 分步解析
1.事件源注册监听器
JButton newButton = new JButton();
newButton.addActionLister(listener);
2.用户触发事件
例如单击该按钮
3.创建事件对象即ActionEvent Object
ActionEvent e;
4.将事件的对象传递给监听器并调用监听器方法
@Overridepublic void actionPerformed(ActionEvent e) {// 相应的逻辑判断if(e.getSource()==jb){this.dispose();// 点击按钮时frame1销毁,new一个frame2new frame2();}}
3.2 分析2
以上代码也可以这样设计:
JButton newButton = new JButton();newButton.addActionLister(listener);//事件源注册监听器newButton.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {if(e.getSource()==jb) {this.dispose();// 点击按钮时frame1销毁,new一个frame2new frame2();}});
}
4 实例演示
例如,点击按钮,后台输出一句话。
public static void main(String[] args) {JFrame jf = new JFrame("事件监听测试");jf.setVisible(true);jf.setSize(100, 200);JButton jb = new JButton("触发事件");jf.add(jb);jb.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// 进行逻辑处理即可System.out.println("触发了事件");}});}
5 详解actionListener()和actionPerformed()
- actionListener()接口
我们看一下Java API(https://docs.oracle.com/javase/10/docs/api/java/awt/event/ActionListener.html)中关于actionListener()接口的定义。
The listener interface for receiving action events. The class that is
interested in processing an action event implements this interface,
and the object created with that class is registered with a component,
using the component’s addActionListener method. When the action event
occurs, that object’s actionPerformed method is invoked.
简单点说,actionListener()接口是Java中关于事件处理的一个接口,继承自EventListener。
- actionPerformed()抽象方法
Java API中的定义:
actionPerformed()是actionListener()接口中声明的一个抽象方法,在监听器接收到触发事件源时自动调用的,比如按下按钮后,它和KeyListener,MouseLisenter,WindowListener等是同一性质的方法(分别对应键盘监听、鼠标监听、窗口监听)。在这个方法中可以做相应的逻辑处理。
Java语言学习--Swing中Button事件监听相关推荐
- java中事件监听_Java中的事件监听机制
鼠标事件监听机制的三个方面: 1.事件源对象: 事件源对象就是能够产生动作的对象.在Java语言中所有的容器组件和元素组件都是事件监听中的事件源对象.Java中根据事件的动作来区分不同的事件源对象,动 ...
- spring中的事件监听机制
Spring event listener 介绍 example 简单原理解释 自定义事件.监听和发布 事件 监听器 发布者 测试 更加一般的事件 @EventListener原理 介绍 exampl ...
- java session 数量_java中使用session监听实现同帐号登录限制、登录人数限制
本文主要介绍了java中使用session监听实现同帐号登录限制.登录人数限制,具体代码如下: 问题域: 1.同帐号登录:若此帐号已登录,不可再次登录(与QQ模式相反). 2.登录人数限制,超过.已达 ...
- Activiti中的事件监听
工作流程事件监听可用于任务提醒.超时提醒等的模块的设计. 其默认的事件监听接口:org.activiti.engine.delegate.event.ActivitiEventListener 事件类 ...
- java图片点击事件_java中想要点击一个button然后jlabel上就显示出图片,button事件监听该怎么写。...
展开全部 给个例子你参考一下:给按钮62616964757a686964616fe4b893e5b19e31333332643864bntOk添加监听事件 bntOk.addMouseListener ...
- JavaScript中绑定事件监听函数的通用方法[ addEvent() ]
上篇文章讲到了事件绑定的3中常用方法:传统绑定.W3C绑定方法.IE绑定方法.但是,在实际开发中对于我们来讲重要的是需要一个通用的.跨浏览器的绑定方法.如果我们在互联网上搜索一下会发现许多方法,一下是 ...
- windchill交流第三篇:Windchill中的事件监听
[size=large][color=red][b] 前言:常年离线在线开发实施Windchill9.0和Windchill10.0. 带人经验极其丰富,可帮公司创建Windchill开发团队. 高效 ...
- 在原生js中的事件监听方法
一.传统事件绑定方法 我们在学习的时候,最初接触的事件绑定方式大多是传统事件绑定方法.传统事件绑定方法事例如下: window.οnlοad=function(){alert("页面已加载& ...
- Vue学习笔记之03v-on事件监听
v-on指令的基本使用 <div id="app"><h2>{{counter}}</h2><!-- <button v-on:cl ...
最新文章
- 获取父页面URL的参数对应值及左对齐字符串
- python 图像计算方位角
- UA OPTI544 量子光学13 场的量子化描述
- 调用c++_WebAssembly: 在C代码中调用JS的函数
- Java程序设计----Java编程基础
- twisted系列教程十八–异步操作的并行运行
- C#|RBG图像转灰度图像与图像灰度反转
- Android 框架揭秘 --读书笔记
- 软件测试每日例会,每日例会(二).md
- python培训学费多少钱-北京python培训学费多少钱?
- 关于iPad作为Win10系统拓展屏的心得
- 不要做一个只会抱怨的人
- 51单片机驱动DS18B20温度传感器测量温度
- 小i机器人与腾讯、商汤等发起成立上海人工智能发展联盟
- uestc_retarded 模板
- 知识的边界----读书笔记
- 【神DP】-ZOJ-3623-Battle Ships
- pdf怎么加密码怎么设置密码?
- 人工智能将在未来几年,呈现以下四个主要发展趋势
- 【Altium Designer】使用AD17导出Gerber文件
热门文章
- [转]我泪长流:沉痛悼念清华水木BBS
- Bilibili客户端的ReactNative版本(demo)
- 重装系统:全网最详细的重装windows10系统(纯净版)方法:利用微软官方U盘制作工具,制作系统启动U盘并重装系统
- input自动填充-Autocomplete
- 论文笔记:Efficient Graph-Based Image Segmentation
- itext实现pdf自动定位合同签订
- 2014兄弟连cocos2d-x3.0视频教程
- 迅为RK3399开发板支持在Ubuntu系统下安装Docker
- 每天一练——牛客网基础语法(9)
- 大数据仓库技术实训任务3