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()

  1. 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。

  1. actionPerformed()抽象方法
    Java API中的定义:

    actionPerformed()是actionListener()接口中声明的一个抽象方法,在监听器接收到触发事件源时自动调用的,比如按下按钮后,它和KeyListener,MouseLisenter,WindowListener等是同一性质的方法(分别对应键盘监听、鼠标监听、窗口监听)。在这个方法中可以做相应的逻辑处理。

Java语言学习--Swing中Button事件监听相关推荐

  1. java中事件监听_Java中的事件监听机制

    鼠标事件监听机制的三个方面: 1.事件源对象: 事件源对象就是能够产生动作的对象.在Java语言中所有的容器组件和元素组件都是事件监听中的事件源对象.Java中根据事件的动作来区分不同的事件源对象,动 ...

  2. spring中的事件监听机制

    Spring event listener 介绍 example 简单原理解释 自定义事件.监听和发布 事件 监听器 发布者 测试 更加一般的事件 @EventListener原理 介绍 exampl ...

  3. java session 数量_java中使用session监听实现同帐号登录限制、登录人数限制

    本文主要介绍了java中使用session监听实现同帐号登录限制.登录人数限制,具体代码如下: 问题域: 1.同帐号登录:若此帐号已登录,不可再次登录(与QQ模式相反). 2.登录人数限制,超过.已达 ...

  4. Activiti中的事件监听

    工作流程事件监听可用于任务提醒.超时提醒等的模块的设计. 其默认的事件监听接口:org.activiti.engine.delegate.event.ActivitiEventListener 事件类 ...

  5. java图片点击事件_java中想要点击一个button然后jlabel上就显示出图片,button事件监听该怎么写。...

    展开全部 给个例子你参考一下:给按钮62616964757a686964616fe4b893e5b19e31333332643864bntOk添加监听事件 bntOk.addMouseListener ...

  6. JavaScript中绑定事件监听函数的通用方法[ addEvent() ]

    上篇文章讲到了事件绑定的3中常用方法:传统绑定.W3C绑定方法.IE绑定方法.但是,在实际开发中对于我们来讲重要的是需要一个通用的.跨浏览器的绑定方法.如果我们在互联网上搜索一下会发现许多方法,一下是 ...

  7. windchill交流第三篇:Windchill中的事件监听

    [size=large][color=red][b] 前言:常年离线在线开发实施Windchill9.0和Windchill10.0. 带人经验极其丰富,可帮公司创建Windchill开发团队. 高效 ...

  8. 在原生js中的事件监听方法

    一.传统事件绑定方法 我们在学习的时候,最初接触的事件绑定方式大多是传统事件绑定方法.传统事件绑定方法事例如下: window.οnlοad=function(){alert("页面已加载& ...

  9. Vue学习笔记之03v-on事件监听

    v-on指令的基本使用 <div id="app"><h2>{{counter}}</h2><!-- <button v-on:cl ...

最新文章

  1. 获取父页面URL的参数对应值及左对齐字符串
  2. python 图像计算方位角
  3. UA OPTI544 量子光学13 场的量子化描述
  4. 调用c++_WebAssembly: 在C代码中调用JS的函数
  5. Java程序设计----Java编程基础
  6. twisted系列教程十八–异步操作的并行运行
  7. C#|RBG图像转灰度图像与图像灰度反转
  8. Android 框架揭秘 --读书笔记
  9. 软件测试每日例会,每日例会(二).md
  10. python培训学费多少钱-北京python培训学费多少钱?
  11. 关于iPad作为Win10系统拓展屏的心得
  12. 不要做一个只会抱怨的人
  13. 51单片机驱动DS18B20温度传感器测量温度
  14. 小i机器人与腾讯、商汤等发起成立上海人工智能发展联盟
  15. uestc_retarded 模板
  16. 知识的边界----读书笔记
  17. 【神DP】-ZOJ-3623-Battle Ships
  18. pdf怎么加密码怎么设置密码?
  19. 人工智能将在未来几年,呈现以下四个主要发展趋势
  20. 【Altium Designer】使用AD17导出Gerber文件

热门文章

  1. [转]我泪长流:沉痛悼念清华水木BBS
  2. Bilibili客户端的ReactNative版本(demo)
  3. 重装系统:全网最详细的重装windows10系统(纯净版)方法:利用微软官方U盘制作工具,制作系统启动U盘并重装系统
  4. input自动填充-Autocomplete
  5. 论文笔记:Efficient Graph-Based Image Segmentation
  6. itext实现pdf自动定位合同签订
  7. 2014兄弟连cocos2d-x3.0视频教程
  8. 迅为RK3399开发板支持在Ubuntu系统下安装Docker
  9. 每天一练——牛客网基础语法(9)
  10. 大数据仓库技术实训任务3