Java中的事件监听知识点&动作监听简单实现(含源码阅读)

简介: 监听分为三类:键盘监听、鼠标监听 和 动作监听,看到这些名词可能有点懵,监听是个啥,那么首先我们来理解一下绑定监听:当事件源(按钮)上发生了某个事件(单击),就执行某段代码(输出“您已点击按钮”)

一、前言


当我们在做拼图小游戏的时候,虽然能添加并打乱图片,但是总觉得少了点东西,感觉要有一些人机互动的东西,比如我点击某一个按钮会现实一个东西这样的效果,这时候我们就需要用到事件中的绑定监听了,所以本文将讲述有关事件的知识点,在做拼图小游戏的小伙伴建议看完这篇文章后再继续写小游戏,这样可能会事半功倍哦~如果想了解拼图小游戏的小伙伴可以在文末点击链接查看专栏(持续更新中)


Java中的事件知识点总结


二、概述


1.事件源


事件源通俗来说就是要在哪个东西上执行操作才能产生效果,所以它可以有很多种,比如按钮、图片、窗体···


2.事件


有了事件源,那么我们要执行某个操作才能“触发机关”实现效果,所以事件就是某些操作比如:鼠标单击、鼠标划入 这些


3.监听


监听分为三类:键盘监听、鼠标监听 和 动作监听,看到这些名词可能有点懵,监听是个啥,那么首先我们来理解一下绑定监听:当事件源(按钮)上发生了某个事件(单击),就执行某段代码(输出“您已点击按钮”)


  • 键盘监听:按下键盘上某些键时,就会触发执行某段代码
  • 鼠标监听:用鼠标执行了某个操作时,就会触发执行某段代码
  • 动作监听:可以简单理解为键盘监听和鼠标监听的精简版(只能监听点击和空格)


三、动作监听简单实现


根据前面【菜单搭建】的知识点,我们可以来写个简易的按钮


1.搭建页面


        JFrame jFrame = new JFrame();
        //设置界面大小
        jFrame.setSize(603,680);
        //设置标题
        jFrame.setTitle("测试监听效果");
        //设置永远置顶
        jFrame.setAlwaysOnTop(true);
        //设置程序随着窗口关闭而结束运行
        //this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        jFrame.setDefaultCloseOperation(3);
        //设置界面居中
        jFrame.setLocationRelativeTo(null);
        //取消默认图片放置位置
        jFrame.setLayout(null);


2.创建按钮对象


 JButton jtb = new JButton("点击我");


3.设置宽和高


这里我们使用setBounds函数,里面的参数有四个:左边x、坐标y、宽度、高度


c0389d45d7e5474c92df914e26bb1ff3.png


我们将它放在左上角,设置一下宽和高(这里可以自行调整)


jtb.setBounds(0,0,200,50);


4.设置监听事件


  • 这里我们使用addActionListener()来实现监听,由于括号内的参数不知道如何传递,所以我们使用 Ctrl+B 跟进查看源码


d8a08732bc354c35a3d1e1d5c7a16a0c.png


再选中ActionListener跟进


0906fb77d738446ea9175c963bdb5ac2.png


发现它是一个接口,那么我们要调用接口的实现类对象


单独写一个类来继承接口


jtb.addActionListener(new testActionListener());
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class testActionListener implements ActionListener {
    @Override
    public void actionPerformed(ActionEvent e) {
        System.out.println("您已点击按钮");
    }
}


匿名内部类


jtb.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                System.out.println("您已点击按钮");
            }
        });


如果这边看不懂的话,可以去看看【Java进阶学习】专栏中有关接口和匿名内部类的文章,回顾一下


5.将按钮放在界面中


这里的知识点也在本专栏中有提到过,忘记的话可以看前面的文章回顾一下


jFrame.getContentPane().add(jtb);


6.设置下界面可视化


jFrame.setVisible(true);


四、测试代码


c3b41194dde542d19acc11f540bf06f3.png


当我们点击按钮时,就会出现“您已点击按钮字样”


7d05a3847bce4ee3a17e60c7e38b9ea2.png


五、上文答案揭晓


【Java实现拼图小游戏(4)—— 打乱图片(含二维数组知识点)】


为二维数组添加数据


for (int i = 0; i < data.length; i++){
  data[i / 4][i % 4] = tempArr[i];
}


六、结语


当看完这篇文章以后,再去写拼图小游戏会更加简单,下面附上本专栏的地址【拼图小游戏(Java)】

相关文章
|
18天前
|
Java Apache Maven
Java百项管理之新闻管理系统 熟悉java语法——大学生作业 有源码!!!可运行!!!
文章提供了使用Apache POI库在Java中创建和读取Excel文件的详细代码示例,包括写入数据到Excel和从Excel读取数据的方法。
48 6
Java百项管理之新闻管理系统 熟悉java语法——大学生作业 有源码!!!可运行!!!
|
1月前
|
数据采集 运维 前端开发
【Java】全套云HIS源码包含EMR、LIS (医院信息化建设)
系统技术特点:采用前后端分离架构,前端由Angular、JavaScript开发;后端使用Java语言开发。
58 5
|
2月前
|
安全 Java 编译器
揭秘JAVA深渊:那些让你头大的最晦涩知识点,从泛型迷思到并发陷阱,你敢挑战吗?
【8月更文挑战第22天】Java中的难点常隐藏在其高级特性中,如泛型与类型擦除、并发编程中的内存可见性及指令重排,以及反射与动态代理等。这些特性虽强大却也晦涩,要求开发者深入理解JVM运作机制及计算机底层细节。例如,泛型在编译时检查类型以增强安全性,但在运行时因类型擦除而丢失类型信息,可能导致类型安全问题。并发编程中,内存可见性和指令重排对同步机制提出更高要求,不当处理会导致数据不一致。反射与动态代理虽提供运行时行为定制能力,但也增加了复杂度和性能开销。掌握这些知识需深厚的技术底蕴和实践经验。
66 2
|
2月前
|
Kubernetes jenkins 持续交付
从代码到k8s部署应有尽有系列-java源码之String详解
本文详细介绍了一个基于 `gitlab + jenkins + harbor + k8s` 的自动化部署环境搭建流程。其中,`gitlab` 用于代码托管和 CI,`jenkins` 负责 CD 发布,`harbor` 作为镜像仓库,而 `k8s` 则用于运行服务。文章具体介绍了每项工具的部署步骤,并提供了详细的配置信息和示例代码。此外,还特别指出中间件(如 MySQL、Redis 等)应部署在 K8s 之外,以确保服务稳定性和独立性。通过本文,读者可以学习如何在本地环境中搭建一套完整的自动化部署系统。
65 0
|
18天前
|
JSON 前端开发 Java
震惊!图文并茂——Java后端如何响应不同格式的数据给前端(带源码)
文章介绍了Java后端如何使用Spring Boot框架响应不同格式的数据给前端,包括返回静态页面、数据、HTML代码片段、JSON对象、设置状态码和响应的Header。
62 1
震惊!图文并茂——Java后端如何响应不同格式的数据给前端(带源码)
|
4天前
|
JavaScript Java 关系型数据库
自主版权的Java诊所管理系统源码,采用Vue 2、Spring Boot等技术栈,支持二次开发
这是一个自主版权的Java诊所管理系统源码,支持二次开发。采用Vue 2、Spring Boot等技术栈,涵盖患者管理、医生管理、门诊管理、药店管理、药品管理、收费管理、医保管理、报表统计及病历电子化等功能模块。
|
4天前
|
缓存 监控 JavaScript
Java医药卫生健康云平台源码
系统采用云端SaaS服务的方式提供,使用用户通过浏览器即能访问,无需关注系统的部署、维护、升级等问题,系统充分考虑了模板化、配置化、智能化、扩展化等设计方法,覆盖了基层医疗机构的主要工作流程,能够与监管系统有序对接,并能满足未来系统扩展的需要。
16 2
|
1月前
|
设计模式 Java 关系型数据库
【Java笔记+踩坑汇总】Java基础+JavaWeb+SSM+SpringBoot+SpringCloud+瑞吉外卖/谷粒商城/学成在线+设计模式+面试题汇总+性能调优/架构设计+源码解析
本文是“Java学习路线”专栏的导航文章,目标是为Java初学者和初中高级工程师提供一套完整的Java学习路线。
307 37
|
14天前
|
分布式计算 Java Hadoop
Hadoop-30 ZooKeeper集群 JavaAPI 客户端 POM Java操作ZK 监听节点 监听数据变化 创建节点 删除节点
Hadoop-30 ZooKeeper集群 JavaAPI 客户端 POM Java操作ZK 监听节点 监听数据变化 创建节点 删除节点
34 1
|
18天前
|
存储 前端开发 Java
Java后端如何进行文件上传和下载 —— 本地版(文末配绝对能用的源码,超详细,超好用,一看就懂,博主在线解答) 文件如何预览和下载?(超简单教程)
本文详细介绍了在Java后端进行文件上传和下载的实现方法,包括文件上传保存到本地的完整流程、文件下载的代码实现,以及如何处理文件预览、下载大小限制和运行失败的问题,并提供了完整的代码示例。
114 1