(JAVA)事件

news2024/11/16 22:44:28

 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 {
    @Override
    public 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() {
            @Override
            public 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 {
    //放在成员位置,因为后面都会用上这两个对象
    //创建按钮对象1
    JButton jButton1 = new JButton("再点我呀");
    //创建按钮对象2
    JButton 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);
    }

    @Override
    public 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.coloradmin.cn/o/889057.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

java初级算法(杨辉三角)

java初级算法(杨辉三角) java初级算法(杨辉三角)内容:思路解法:代码实现 学习时间:2023/08/16 java初级算法(杨辉三角) 每日一算法:杨辉三角 内容&#xff1a…

跨境外贸必看|海外版小红书“Pinterest”如何推广引流?

Pinterest是一个海外图片社交分享网站,Pinterest与国内小红书的营销方式非常相似,它允许我们定位特定的人群、兴趣甚至位置,借助庞大的用户群体和针对特定受众的能力,它成为外贸与跨境电商的推广营销利器,越来越多的跨…

在项目中如何解除idea和Git的绑定

在项目中如何解除idea和Git的绑定 1、点击File--->Settings...(CtrlAltS)--->Version Control--->Directory Mappings--->点击取消Git的注册根路径: 2、回到idea界面就没有Git了: 3、给这个项目初始化 这样就可以重新绑定远程仓库了&#x…

记录hutool http通过代理模式proxy访问外面的链接

效果: 代码: public class TestMain {public static void main(String[] args){HttpRequest httpRequest HttpRequest.get("https://www.youtube.com").timeout(30000);httpRequest.setProxy(new Proxy(Proxy.Type.HTTP,new InetSocketAddre…

嵌入式开发场景下的代码管理方案(上)

目录 嵌入式开发场景的代码管理特点与诉求 特点 诉求 嵌入式开发场景的代码管理工具与方式 SVN 与 Git ➤ 1. 架构 ➤ 2. 安全 ➤ 3. 权限 ➤ 4. 性能 ➤ 5. 体验 本文来自 武让 极狐GitLab 高级解决方案架构师 版本控制,也称为源码控制、代码管理&#x…

开源代码分享(15)—电-气-热综合能源系统优化调度(附matlab代码)

参考文献: [1]邓红卫. 计及碳排放成本的电—气—热综合能源系统节点能价计算方法研究[D].东北电力大学,2019. [2]王静,徐箭,廖思阳,司马莉萍,孙元章,魏聪颖.计及新能源出力不确定性的电气综合能源系统协同优化[J].电力系统自动化,2019,43(15):2-9. [3]郑豪丰,杨国…

配置 crontab 作业和 创建协作目录

一: 配置 cron 作业,该作业每隔 3 分钟运行并执行以下命令: logger "EX200 in progress",以用户 natasha 身份运行 crontab -eu natashacrontab -lu natasha e:编辑 u:指定用户 l:查看 创建协作目录 创…

OpenShift 4 - 基于 MinIO 安装 Red Hat Quay 镜像仓库

《OpenShift / RHEL / DevSecOps 汇总目录》 说明:本文已经在 OpenShift 4.13 Quay 3.9 的环境中验证 本文适合在单机 OpenShift 环境安装 Red Hat Quay 镜像仓库。 另外《OpenShift 4 - 安装 ODF 并部署红帽 Quay (1 Worker)》也可以在单节点部署。 而《OpenShif…

Ubuntu 20.04配置静态ip

ip配置文件 cd /etc/netplan配置 根据需求增加 # Let NetworkManager manage all devices on this system network:version: 2renderer: NetworkManager # 管理 不是必须ethernets:enp4s0: #网卡名dhcp4: no #关闭ipv4动态分配ip地址dhcp6: no #关闭ipv6动态分配…

[亲测有效]android studio 连接不上模拟器夜神 雷电 解决方法

问题描述: A. android studio 连接不上模拟器 B. adb devices 显示没有连接设备 C. android studio 中有时候可以连接推送安装应用,但是日志查看窗口显示设备下线 等等情况,都是一个问题: adb 版本不一致 电脑主机上adb 版本与…

MySQL存储过程 、存储函数、以及优缺点

存储过程 VS 存储函数(函数) | | 关键字 |调用语法 | 返回值 | 应用场景 | |-存储过程-|-procedure-|-call 存储过程()-|-理解为0个或多个-|-一般用于更新-| | 存储函数 | function | select 函数() | 只能是一个 | 一般用于查询结构为一个值并返回时| …

C++——两个关于继承,多态的奇妙问题

文章目录 问题一(有关菱形虚拟继承)问题二(有关多态)总结 问题一(有关菱形虚拟继承) 前言:该问题涉及菱形虚拟继承的问题,如果不知道菱形虚拟继承是什么的,可以看看博主的另一篇博客,链接如下: …

​下一代Transformer:RetNet结构可视化及Vision RetNet展望

©PaperWeekly 原创 作者 | 岳廷 微软和清华大学的研究人员在论文《Retentive Network: A Successor to Transformer for Large Language Models》中提出了一种新的模型架构 RetNet,同时实现 Transformer 模型的高效并行训练、低延迟高吞吐量的推理以及良好的建…

数据结构--拓扑排序

数据结构–拓扑排序 AOV⽹ A O V ⽹ \color{red}AOV⽹ AOV⽹(Activity On Vertex NetWork&#xff0c;⽤顶点表示活动的⽹)&#xff1a; ⽤ D A G 图 \color{red}DAG图 DAG图&#xff08;有向⽆环图&#xff09;表示⼀个⼯程。顶点表示活动&#xff0c;有向边 < V i , V j …

(二)Git在公司中团队内合作和跨团队合作和分支操作的全部流程(一篇就够)

&#xff08;一&#xff09;Git连接GitHub的全部流程https://blog.csdn.net/m0_65992672/article/details/132333727 团队内协作 项目经理通过git push将代码推送到远程仓库【也就是git、gitee等代码托管中心】,推完以后组员可以通过git clone克隆下来代码&#xff0c;如果组…

版本控制工具Git集成IDEA的使用(第一篇Gitee)

目录 一、Gitee的使用 1、注册网站会员 2、用户中心 3、创建远程仓库 4、配置SSH免密登录 二、集成IDEA&#xff0c;Git项目搭建 1、本地仓库搭建 1&#xff09;创建一个新项目 2&#xff09;打开终端&#xff0c;在当前目录新建一个Git代码库 3&#xff09;忽略文件 …

APP内嵌小游戏,全面提升用户活跃、留存

开发者想要提高APP的用户活跃度可以通过拉新的方式完成&#xff0c;但目前拉新的成本较高&#xff0c;而且新的目标用户一般很难留住&#xff0c;流失率也比较高。 此时&#xff0c;可以通过植入小游戏的方式来提高用户活跃度&#xff0c;游戏的优势在于可以快速吸引用户&…

无涯教程-Perl - system函数

描述 该函数执行PROGRAM指定的命令,并将LIST作为参数传递给该命令。 返回值是等待功能返回的程序的退出状态。要获得实际的退出值,请除以256。 语法 以下是此函数的简单语法- system PROGRAM, LISTsystem PROGRAM返回值 此函数返回wai返回的程序的退出状态 例 以下是显…

Everest Group发布“2023任务挖掘”报告:多家RPA厂商上榜

近日&#xff0c;全球知名信息咨询机构Everest Group发布了“2023任务挖掘”供应商报告。通过市场影响力&#xff08;市场应用、企业覆盖、价值交付&#xff09;、产品交付能力&#xff08;产品策略、数据收集和整合、任务智能化、产品培训支持、商业模式&#xff09;多个维度&…