(JAVA)事件

 ActionListener

public class Test3 {public static void main(String[] args){JFrame jFrame = new JFrame();//设置界面的宽高jFrame.setSize(603,680);//设置界面标题jFrame.setTitle("事件演示");//设置界面置顶jFrame.setAlwaysOnTop(true);//设置界面居中jFrame.setLocationRelativeTo(null);//设置关闭模式jFrame.setDefaultCloseOperation(3);//取消组件居中放置jFrame.setLayout(null);//创建按钮对象JButton jButton = new JButton("点我呀");//设置位置和坐标jButton.setBounds(0,0,100,50);//给按钮添加监听动作//jButton:组件对象,表示你要给哪个组件添加事件//addActionListener:表示我要给组件添加哪个事件监听(动作监听鼠标左键单击,空格)//参数:表示事件被触发之后要执行的代码jButton.addActionListener(new MyActionListener());//把按钮添加到界面中(添加到隐形容器中)jFrame.getContentPane().add(jButton);jFrame.setVisible(true);
}
}
package test;import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;public class MyActionListener implements ActionListener {@Overridepublic void actionPerformed(ActionEvent e) {System.out.println("按钮被点击了");}
}

 


用匿名内部类方法简化

public class Test3 {public static void main(String[] args){JFrame jFrame = new JFrame();//设置界面的宽高jFrame.setSize(603,680);//设置界面标题jFrame.setTitle("事件演示");//设置界面置顶jFrame.setAlwaysOnTop(true);//设置界面居中jFrame.setLocationRelativeTo(null);//设置关闭模式jFrame.setDefaultCloseOperation(3);//取消组件居中放置jFrame.setLayout(null);//创建按钮对象JButton jButton = new JButton("点我呀");//设置位置和坐标jButton.setBounds(0,0,100,50);/*//给按钮添加监听动作//jButton:组件对象,表示你要给哪个组件添加事件//addActionListener:表示我要给组件添加哪个事件监听(动作监听鼠标左键单击,空格)//参数:表示事件被触发之后要执行的代码jButton.addActionListener(new MyActionListener());//把按钮添加到界面中(添加到隐形容器中)jFrame.getContentPane().add(jButton);*///匿名内部类方法简化代码//匿名内部类对象//避免重新写一个新类jButton.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {System.out.println("buyaodianwo");}});//把按钮添加到界面中(添加到隐形容器中)jFrame.getContentPane().add(jButton);jFrame.setVisible(true);
}
}

另一种方法,通过this调用本类方法

package test;import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;public class MyJFrame extends JFrame implements ActionListener {//放在成员位置,因为后面都会用上这两个对象//创建按钮对象1JButton jButton1 = new JButton("再点我呀");//创建按钮对象2JButton jButton2 = new JButton("再点我呀");public MyJFrame(){//设置界面的宽高this.setSize(603,680);//设置界面标题this.setTitle("事件演示");//设置界面置顶this.setAlwaysOnTop(true);//设置界面居中this.setLocationRelativeTo(null);//设置关闭模式this.setDefaultCloseOperation(3);//取消组件居中放置this.setLayout(null);//设置位置和坐标jButton1.setBounds(0,0,100,50);//添加行为(this触发本类中的代码)jButton1.addActionListener(this);//设置位置和坐标jButton2.setBounds(100,0,100,50);//添加行为(this触发本类中的代码)jButton2.addActionListener(this);//把按钮添加到整个界面中去this.getContentPane().add(jButton1);this.getContentPane().add(jButton2);//将界面显示出来this.setVisible(true);}@Overridepublic void actionPerformed(ActionEvent e) {//对当前按钮进行操作//获取当前被操作的那个按钮的对象//父类对象Object source = e.getSource();if (source==jButton1){jButton1.setSize(200,200);}else if (source==jButton2){Random r = new Random();jButton2.setLocation(r.nextInt(500),r.nextInt(500));}}
}
package test;public class Test4 {public static void main(String[] args){new MyJFrame();}
}

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

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

相关文章

高层建筑全景vr火灾隐患排查模拟培训软件助力群众防范火灾伤害

随着城市化进程的加快,楼宇建筑的数量也在不断增加。然而,楼宇消防安全问题也日益突出。为了提高楼宇员工和居民的消防安全意识,楼宇VR消防安全教育培训应运而生。VR安全培训公司深圳华锐视点制作的楼宇vr消防安全教育培训,包括消…

6.1 安全漏洞与网络攻击

数据参考:CISP官方 目录 安全漏洞及产生原因信息收集与分析网络攻击实施后门设置与痕迹清除 一、安全漏洞及产生原因 什么是安全漏洞 安全漏洞也称脆弱性,是计算机系统存在的缺陷 漏洞的形式 安全漏洞以不同形式存在漏洞数量逐年递增 漏洞产生的…

日常BUG——SpringBoot模糊映射

😜作 者:是江迪呀✒️本文关键词:日常BUG、BUG、问题分析☀️每日 一言 :存在错误说明你在进步! 一、问题描述 SpringBoot在启动时报出如下错误: Caused by: java.lang.IllegalStateExceptio…

Vitis高层次综合学习——FPGA

高层次综合 什么是高层次综合?就是使用高级语言(如C/C)来编写FPGA算法程序。 在高层次综合上并不需要制定微架构决策,如创建状态机、数据路径、寄存器流水线等。这些细节可以留给 HLS 工具,通过提供输入约束&#xff…

iTOP-RK3568开发板ubuntu环境下安装Eclipse

eclipse 是使用 Java 语言开发的,一个 Java 应用程序,这意味着 eclipse 只能运行在 Java虚拟机上。倘若没有安装 JDK(Java Development Kit),即使在 ubuntu 上安装了 eclipse,也不能运行,所以要…

设计模式之享元模式(Flyweight)的C++代码实现

1、享元模式提出 面向对象很好地解决了抽象问题,但是创建对象会带来一定的内存开销。绝大部分情况下,创建对象带来的内存开销是可以忽略不计的;在有些情况下是需要谨慎处理的,如类A的sizeof是50个字节,则创建50*1024*…

IT运维:使用数据分析平台监控深信服防火墙

概述 深信服防火墙自身监控可以满足绝大部分需求,比如哪个应用占了最大带宽,哪个用户访问了哪些网站?这里我们为什么使用鸿鹄呢?因为我们要的是数据的处理和分析,比如某个用户在某个事件都做了哪些行为,这个…

提示丢失vcomp140.dll怎么办?如何快速修复vcomp140.dll丢失问题

最近我遇到了一个程序启动失败的问题,错误提示显示缺少了vcomp140.dll文件。经过一番研究和尝试,我终于成功修复了这个问题。在这里,我将分享一下我的修复方法。 目录 vcomp140.dll是什么? 如何快速修复呢? vcomp140…

DR模式 LVS负载均衡群集

数据包流向分析: (1)客户端发送请求到 Director Server(负载均衡器),请求的数据报文(源 IP 是 CIP,目标 IP 是 VIP)到达内核空间。 (2)Director Server 和 Re…

K8S用户管理体系介绍

1 K8S账户体系介绍 在k8s中,有两类用户,service account和user,我们可以通过创建role或clusterrole,再将账户和role或clusterrole进行绑定来给账号赋予权限,实现权限控制,两类账户的作用如下。 server acc…

06-加密算法

加密算法 一、前言知识1、加密解密2、MD5(最常见)3、SHA4、进制5、时间戳6、URL编码7、base64编码8、unescape编码9、AES加密10、DES(类似于base64) 二、常见加密形式算法解析三、演示案例1、某 CTF 比赛题目解析2、某 CMS 密码加…

企业电子招投标采购系统源码之电子招投标的组成 tbms

​ 功能模块: 待办消息,招标公告,中标公告,信息发布 描述: 全过程数字化采购管理,打造从供应商管理到采购招投标、采购合同、采购执行的全过程数字化管理。通供应商门户具备内外协同的能力,为…