疑惑点:动作监听时this的含义:可以理解为接口的多态

news/2024/7/25 21:50:50/文章来源:https://blog.csdn.net/Eliaukgo/article/details/139260962

全部代码:

package test;import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;public class test3 extends JFrame implements ActionListener {JButton jb1 =new JButton("你点我啊!");JButton jb2 =new JButton("你点不着我吧!");public test3(){initJFrame();initJButton();//显示整体窗体(true是显示,false是关闭),写在最后this.setVisible(true);}public void initJFrame() {//设置尺寸(单位是尺寸)this.setSize(603,680);//设置标题this.setTitle("事件演示");//设置窗口在页面置顶this.setAlwaysOnTop(true);//设置界面居中生成位置,利用nullthis.setLocationRelativeTo(null);//设置关闭模式this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);//取消加载图片的默认居中this.setLayout(null);}public void initJButton(){//给按钮设置位置和宽高jb1.setBounds(0,0,100,50);//给按钮添加事件jb1.addActionListener(this);jb2.setBounds(0,100,120,50);jb2.addActionListener(this);this.getContentPane().add(jb1);this.getContentPane().add(jb2);}@Overridepublic void actionPerformed(ActionEvent e) {//获取当前被操作的按钮对象Object s = e.getSource();if (s==jb1){jb1.setSize(200,100);}else if (s==jb2){Random r =new Random();jb2.setLocation(r.nextInt(500),r.nextInt(500));}}
}

注意看这里的this是一个JFrame对象

        这里this是写在了initJFrame类的构造方法中的,所以代表initJFrame的对象,在创建test3这个类时,已经承接了ActionListerner这个接口,因为接口的多态,所以this可以是ActionListerner的实现类对象,所以自动调用所有重写的方法

addActionListener这个方法的作用是传入对象后会调用重写的actionPerformed方法

加深理解:如果不用this

要创建实现类:

才能调用该方法

this的使用可以理解为接口的多态,任意一个实现类对象均可以承接这个接口

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_1052919.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

鸿蒙ArkUI-X跨平台开发:【bility开发说明(iOS端)】

通过Stage模型开发iOS端应用指南 简介 本文介绍将ArkUI框架扩展到iOS平台所需要的必要类及其使用说明,开发者基于OpenHarmony,可复用大部分的应用代码(生命周期等)并可以部署到iOS平台,降低跨平台应用开发成本。 Ar…

c++——模板初始识

1.函数模板 我们经常用到Swap函数交换两个值。由于需要交换的数据的类型不同,我们就需要写不同参数类型的同名函数,也就是函数重载: 然而这三个函数的逻辑是一样的,写这么多有些多此一举,通过函数模版可以写一个通用…

SAP后续借记、后续贷记、贷方凭证的应用介绍

SAP-MM模块中发票校验MIRO,对于做采购或财务相关的用户都应该非常熟悉,可能每天都需要进行这业务操作处理,但是在发票校验的系统界面中,有三个使用不是很频繁的功能(如下图红色框)。 对于这三业务功能曾听有些用户抱怨SAP怎么那么麻烦啊,不就是补偿或扣供应商的钱嘛,我…

配置环境变量

配置环境变量$(xxxx),代表宏 32位操作系统,请自觉将文中路径中所有的x64换成x86。 %符号表示引用系统环境变量或用户自定义的环境变量 如果你想将某个文件夹添加到Visual Studio的路径中,你可以在环境变量中添加%FolderName%,其…

经验分享:JMeter控制RPS

一、前言 ​ RPS (Request Per Second)一般用来衡量服务端的吞吐量,相比于并发模式,更适合用来摸底服务端的性能。我们可以通过使用 JMeter 的常数吞吐量定时器来限制每个线程的RPS。对于RPS,我们可以把他理解为我们的TPS,我们就…

17- PHP 开发-个人博客项目TP 框架路由访问安全写法历史漏 洞

常见的php框架:laravel和thinkphp和yii 这里以thinkphp为例 thinkphp目录访问设置 这里只找到了这个3.多的源代码,没找点5.的,凑合一下 链接:GitHub - top-think/thinkphp: ThinkPHP3.2 ——基于PHP5的简单快速的面向对象的PHP…

RPC 框架

RPC 全称 Remote Procedure Call——远程过程调用。 RPC技术简单说就是为了解决远程调用服务的一种技术,使得调用者像调用本地服务一样方便透明。RPC是一种通过网络从远程计算机程序上请求服务,不需要了解底层网络技术的协议。 集群和分布式 集群&…

GIGE 协议摘录

系列文章目录 GIGE 学习笔记 GIGE 协议摘录 文章目录 系列文章目录引言第 1 章 设备发现1.1 链路选择1.1.1 单链路配置1.1.2 多链路配置1.1.3 链路聚合组配置 LAG 1.2 IP配置1.2.1 协议选择1.2.2 静态IP1.2.3 DHCP1.2.4 链接本地地址 LLA 1.3 设备枚举1.3.1 GVCP设备发现 引言 …

832. 翻转图像 - 力扣

1. 题目 给定一个 n x n 的二进制矩阵 image ,先 水平 翻转图像,然后 反转 图像并返回 结果 。 水平翻转图片就是将图片的每一行都进行翻转,即逆序。 例如,水平翻转 [1,1,0] 的结果是 [0,1,1]。 反转图片的意思是图片中的 0 全部被…

【前端】XML和HTML的区别详解

人不走空 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌赋:斯是陋室,惟吾德馨 目录 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌…

【设计模式深度剖析】【1】【结构型】【代理模式】| 玩游戏打怪、升级为例加深理解

👈️上一篇:创建型设计模式对比 | 下一篇:装饰器模式👉️ 目 录 代理模式定义英文原话直译如何理解? 3个角色UML类图1. 抽象主题(Subject)角色2. 代理类:代理主题(Proxy Subject&#xff0…

【图神经网络——GATv2】

图神经网络——GATV2 GATV2GATV2代码实现:GATV2在MUTAG数据集上的应用:任务:推断分子是否抑制HIV病毒复制 GATV2 GATV2 ? 什么是GATV2呢? 相比较于GAT 有什么区别呢? GAT:使用的是固定的注意力机…

将本地项目上传到 gitee 仓库

1、创建 gitee 仓库 到 gitee 官网,新建仓库 配置新建仓库 完成仓库的创建 项目上传到仓库 上传项目需要安装git git官方下载地址:git下载地址 安装完成,前往本地项目所在文件夹,右击选择 Git Bash Here 刚下载完成需要配置G…

java面试(多线程)

线程和进程的区别 程序由指令和数据组成,但这些指令要运行,数据要读写,就必须将指令加载至CPU,数据加载至内存。在指令运行过程中还需要用到磁盘,网络等设备。进程就是用来加载指令,管理内存,管…

vue3主题切换按钮与功能实现

代码: <template><div class"slideThree"><label class"theme-switch"><inputtype"checkbox"class"checkbox"v-model"isChecked"change"setTheme"id"slideThree"name"check…

埃文科技携数据要素产品亮相第七届数字中国建设峰会

第七届数字中国建设峰会&#xff08;以下简称“峰会”&#xff09;于2024年5月24日至25日在福建省福州市举办。此次峰会是国家数据工作体系优化调整后举办的首次数字中国建设峰会。本届峰会由国家发展改革委、国家数据局、国家网信办、科技部、国务院国资委、福建省人民政府共同…

【MATLAB】基于VMD-SSA-GRU的回归预测模型

有意向获取代码&#xff0c;请转文末观看代码获取方式~ 1 基本定义 基于VMD-SSA-GRU的回归预测模型是一种集成了变分模态分解&#xff08;VMD&#xff09;、同步滑动平均&#xff08;SSA&#xff09;和门控循环单元&#xff08;GRU&#xff09;的复杂时间序列预测方法。下面将…

leetcode 530.二叉搜索树的最小绝对差 、501.二叉搜索树中的众数 、236. 二叉树的最近公共祖先

leetcode 530.二叉搜索树的最小绝对差 、501.二叉搜索树中的众数 、236. 二叉树的最近公共祖先 leetcode 530.二叉搜索树的最小绝对差 题目链接&#xff1a;https://leetcode.cn/problems/maximum-binary-tree/description/ 题目&#xff1a; 给你一个二叉搜索树的根节点 r…

BUUCTF-misc刷题

被嗅探的流量1 用wireshark打开附件&#xff0c;Ctrlf&#xff0c;然后搜索flag&#xff0c;我们在这么多数据包中搜索带有flag字符的 然后第一个包中上传了一个名叫flag的.jpg文件 然后直接ctrlf&#xff0c;搜索flag{ 得到flag&#xff1a;flag{da73d88936010da1eeeb36e945e…

php 连接sqlserver步骤

1.首先要确定使用的是sqlserver的哪个版本&#xff0c;比如sqlserver2012 2.确定服务器是64位还是32位的 3.确认一下使用php的哪个版本&#xff0c;比如php7.1 SQL Server 的 Microsoft PHP 驱动程序 Microsoft Drivers for PHP 支持矩阵 - PHP drivers for SQL Server | Mi…