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

相关文章
|
4天前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
16 2
|
1月前
|
Java Apache Maven
Java百项管理之新闻管理系统 熟悉java语法——大学生作业 有源码!!!可运行!!!
文章提供了使用Apache POI库在Java中创建和读取Excel文件的详细代码示例,包括写入数据到Excel和从Excel读取数据的方法。
59 6
Java百项管理之新闻管理系统 熟悉java语法——大学生作业 有源码!!!可运行!!!
|
2月前
|
数据采集 运维 前端开发
【Java】全套云HIS源码包含EMR、LIS (医院信息化建设)
系统技术特点:采用前后端分离架构,前端由Angular、JavaScript开发;后端使用Java语言开发。
81 5
|
3月前
|
安全 Java 编译器
揭秘JAVA深渊:那些让你头大的最晦涩知识点,从泛型迷思到并发陷阱,你敢挑战吗?
【8月更文挑战第22天】Java中的难点常隐藏在其高级特性中,如泛型与类型擦除、并发编程中的内存可见性及指令重排,以及反射与动态代理等。这些特性虽强大却也晦涩,要求开发者深入理解JVM运作机制及计算机底层细节。例如,泛型在编译时检查类型以增强安全性,但在运行时因类型擦除而丢失类型信息,可能导致类型安全问题。并发编程中,内存可见性和指令重排对同步机制提出更高要求,不当处理会导致数据不一致。反射与动态代理虽提供运行时行为定制能力,但也增加了复杂度和性能开销。掌握这些知识需深厚的技术底蕴和实践经验。
77 2
|
3月前
|
Kubernetes jenkins 持续交付
从代码到k8s部署应有尽有系列-java源码之String详解
本文详细介绍了一个基于 `gitlab + jenkins + harbor + k8s` 的自动化部署环境搭建流程。其中,`gitlab` 用于代码托管和 CI,`jenkins` 负责 CD 发布,`harbor` 作为镜像仓库,而 `k8s` 则用于运行服务。文章具体介绍了每项工具的部署步骤,并提供了详细的配置信息和示例代码。此外,还特别指出中间件(如 MySQL、Redis 等)应部署在 K8s 之外,以确保服务稳定性和独立性。通过本文,读者可以学习如何在本地环境中搭建一套完整的自动化部署系统。
69 0
|
8天前
|
人工智能 监控 数据可视化
Java智慧工地信息管理平台源码 智慧工地信息化解决方案SaaS源码 支持二次开发
智慧工地系统是依托物联网、互联网、AI、可视化建立的大数据管理平台,是一种全新的管理模式,能够实现劳务管理、安全施工、绿色施工的智能化和互联网化。围绕施工现场管理的人、机、料、法、环五大维度,以及施工过程管理的进度、质量、安全三大体系为基础应用,实现全面高效的工程管理需求,满足工地多角色、多视角的有效监管,实现工程建设管理的降本增效,为监管平台提供数据支撑。
25 3
|
13天前
|
运维 自然语言处理 供应链
Java云HIS医院管理系统源码 病案管理、医保业务、门诊、住院、电子病历编辑器
通过门诊的申请,或者直接住院登记,通过”护士工作站“分配患者,完成后,进入医生患者列表,医生对应开具”长期医嘱“和”临时医嘱“,并在电子病历中,记录病情。病人出院时,停止长期医嘱,开具出院医嘱。进入出院审核,审核医嘱与住院通过后,病人结清缴费,完成出院。
45 3
|
19天前
|
JavaScript Java 项目管理
Java毕设学习 基于SpringBoot + Vue 的医院管理系统 持续给大家寻找Java毕设学习项目(附源码)
基于SpringBoot + Vue的医院管理系统,涵盖医院、患者、挂号、药物、检查、病床、排班管理和数据分析等功能。开发工具为IDEA和HBuilder X,环境需配置jdk8、Node.js14、MySQL8。文末提供源码下载链接。
|
22天前
|
移动开发 前端开发 JavaScript
java家政系统成品源码的关键特点和技术应用
家政系统成品源码是已开发完成的家政服务管理软件,支持用户注册、登录、管理个人资料,家政人员信息管理,服务项目分类,订单与预约管理,支付集成,评价与反馈,地图定位等功能。适用于各种规模的家政服务公司,采用uniapp、SpringBoot、MySQL等技术栈,确保高效管理和优质用户体验。
|
1月前
|
JSON 前端开发 Java
震惊!图文并茂——Java后端如何响应不同格式的数据给前端(带源码)
文章介绍了Java后端如何使用Spring Boot框架响应不同格式的数据给前端,包括返回静态页面、数据、HTML代码片段、JSON对象、设置状态码和响应的Header。
133 1
震惊!图文并茂——Java后端如何响应不同格式的数据给前端(带源码)