Java+Swing: 登录和重置按钮的点击事件 整理6

news2024/11/26 23:35:08

1. 在Login类中给按钮添加事件

    // 按钮添加鼠标点击事件
    loginButton.addActionListener();
    resetButton.addActionListener();

2. 创建一个事件处理的类, 该类实现了ActionListener

package com.handler;

/**
 * @Author:xiexu
 * @Date:2023/12/7 13:22
 */
public class LoginHandler implements ActionListener {
   
    @Override
    public void actionPerformed(ActionEvent e) {
        
    }
}

3. 在Login定义

LoginHandler loginHandler;

4.因为需要对登录界面进行相应的操作,所以需要把整个登录界面当作一个对象传到LoginHandler中,然后在LoginHandler进行相应的处理

package com.handler;

/**
 * @Author:xiexu
 * @Date:2023/12/7 13:22
 */
public class LoginHandler implements ActionListener {
    
    private Login login;

    public LoginHandler(Login login) {
        this.login = login;
    }
   
    @Override
    public void actionPerformed(ActionEvent e) {
        
    }
}

在Login类中,初始化时,将当前的 this 传过去

loginHandler = new LoginHandler(this);

5. 指定事件的处理对象

// 按钮添加鼠标点击事件
loginButton.addActionListener(loginHandler);
resetButton.addActionListener(loginHandler);

6. 在LoginHandler中进行相应的处理,

获取按钮中的内容时,需要在Login类中添加相应的get和set方法,不然获取不到

package com.handler;

import com.student_view.Login;

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;

/**
 * @Author:xiexu
 * @Date:2023/12/7 13:22
 */
public class LoginHandler implements ActionListener {
    private Login login;

    public LoginHandler(Login login) {
        this.login = login;
    }
    @Override
    public void actionPerformed(ActionEvent e) {
        JButton jButton = (JButton) e.getSource();
        String text = jButton.getText();

        if ("重置".equals(text)) {
//            System.out.println("重置");
            login.getUserNameTextField().setText("");
            login.getPasswordTextField().setText("");
        } else if ("登录".equals(text)) {
//            System.out.println("登录");
            login();
        }
    }

    private void login() {
        String userName = login.getUserNameTextField().getText();
        String password = login.getPasswordTextField().getText();

        System.out.println(userName + ":" + password);

        // 查询数据库
        boolean flag = false;
        if (!flag) {

        } else {
            JOptionPane.showMessageDialog(login, "用户名或密码错误");  // 给出提示
        }
    }

}
// getter and setter
    public JTextField getUserNameTextField() {
        return userNameTextField;
    }

    public void setUserNameTextField(JTextField userNameTextField) {
        this.userNameTextField = userNameTextField;
    }

    public JPasswordField getPasswordTextField() {
        return passwordTextField;
    }

    public void setPasswordTextField(JPasswordField passwordTextField) {
        this.passwordTextField = passwordTextField;
    }

7. 实现键盘回车键登录(需要设置为默认按钮

LoginHandler类需要继承extends KeyAdapter 

// 增加键盘按键事件   按回车可以登录
loginButton.addKeyListener(loginHandler);
// 设置loginButton 为默认按钮
getRootPane().setDefaultButton(loginButton);
package com.handler;

import com.student_view.Login;

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;

/**
 * @Author:xiexu
 * @Date:2023/12/7 13:22
 */
public class LoginHandler extends KeyAdapter implements ActionListener {
    private Login login;

    public LoginHandler(Login login) {
        this.login = login;
    }
    @Override
    public void actionPerformed(ActionEvent e) {
        JButton jButton = (JButton) e.getSource();
        String text = jButton.getText();

        if ("重置".equals(text)) {
//            System.out.println("重置");
            login.getUserNameTextField().setText("");
            login.getPasswordTextField().setText("");
        } else if ("登录".equals(text)) {
//            System.out.println("登录");
            login();
        }
    }

    private void login() {
        String userName = login.getUserNameTextField().getText();
        String password = login.getPasswordTextField().getText();

        System.out.println(userName + ":" + password);

        // 查询数据库
        boolean flag = false;
        if (!flag) {

        } else {
            JOptionPane.showMessageDialog(login, "用户名或密码错误");  // 给出提示
        }
    }

    @Override
    public void keyPressed(KeyEvent e) {
        if (KeyEvent.VK_ENTER == e.getKeyCode()) {
            login();
        }

    }
}

8. 结束,看效果

接上一节:http://t.csdnimg.cn/jRCLi

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

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

相关文章

K8S 删除命令空间时 一直卡住怎么办?

当使用完一个命名空间后,想删除了又删除不掉,这个时候查看命名空间的状态一直是Terminating。使用强制删除,也是还是不行。(找了好多办法都不行) [rootk8s-master kubernetes-yaml]# kubectl delete ns mem-example Er…

3DMAX UV贴图修改插件安装卸载方法

3DMAX UV贴图修改插件安装卸载方法 3dMax贴图修改插件PolyUnwrapper是为纹理艺术家设计的一整套专业工具,尤其适用于建筑和游戏行业。 它包含许多功能,将大大帮助您改进UV展开的工作流程。 【主要功能特点】 -多重缝合。一次缝合多个壳 -自定义打包算…

MTTS | 多语言多人的VITS语音合成项目实现

----------------------------------🗣️ 语音合成 VITS相关系列直达 🗣️ ------------------------------------- 🫧VITS :TTS | 保姆级端到端的语音合成VITS论文详解及项目实现(超详细图文代码) 🫧MB-iSTFT-VITS&am…

2024年江苏省职业院校技能大赛 信息安全管理与评估 第二阶段教师组 (样卷)

2024年江苏省职业院校技能大赛 信息安全管理与评估 第二阶段教师组 (样卷) 项目竞赛样题 本文件为信息安全管理与评估项目竞赛-第二阶段样题,内容包括:网络安全事件响应、数字取证调查、应用程序安全。 本次比赛时间为180分钟。 介绍 GeekSec专注技能竞…

Java聊天程序(一对一)简单版

我们首先要完成服务端,不然出错,运行也要先运行服务端,如果不先连接服务端,就不监听,那客户端不知道连接谁 服务端 import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.Actio…

常见数据同步工具之实时同步

实时数据同步是现代数据处理中非常重要的一环。在常见的数据同步工具中,Flume、Flink CDC和DataX都是非常受欢迎的选择。它们各自有自己的工作原理、优势和劣势。 Flume主要用于日志传输,简单易用但对特定数据源可能有限;Flink CDC基于CDC技术…

jQuery ajax读取本地json文件 三级联动下拉框

步骤 1:创建本地JSON文件 {"departments": [{"name": "会计学院","code": "052"},{"name": "金融学院","code": "053"},{"name": "财税学院",&qu…

基于若依的ruoyi-nbcio流程管理系统支持支持定时边界事件和定时捕获事件

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码&#xff1a; https://gitee.com/nbacheng/ruoyi-nbcio 演示地址&#xff1a;RuoYi-Nbcio后台管理系统 1、定时边界事件 <template><div class"panel-tab__content"><!--目前只处理定…

【Java系列】详解多线程(一)

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【Java系列专栏】 本专栏旨在分享学习Java的一点学习心得&#xff0c;欢迎大家在评论区交流讨论&#x1f48c; 目录 一、背景引入二、线程…

解决git提交完代码后切换到自己分支pull拉错远程分支

&#x1f979;MD 我是猪&#xff01;拉代码的时候净想着干饭了&#xff0c;一下给拉错了&#x1f624; &#x1f338;方法一&#xff1a;打印日志&#xff0c;然后回退版本 &#x1f338;方法二&#xff1a; 舍弃本地修改 git checkout .直接把冲突的文件提交到自己的分支&a…

Linux内核上游提交完整流程及示例

参考博客文章&#xff1a; 向linux内核提交代码 - 知乎 一、下载Linux内核源码 通过git下载Linux内核源码&#xff0c;具体命令如下&#xff1a; git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 实际命令及结果如下&#xff1a; penghaoDin…

【华为网络-配置-025】- 同 VLAN 下不同网段通信(启用 Sub 地址)

要求&#xff1a; 1、各接口配置 VLAN 后配置 Sub 地址使 PC1 与 PC3 通信。 一、sub 地址配置 [LSW1]vlan 10 [LSW1]port-group group-member GigabitEthernet 0/0/1 to GigabitEthernet 0/0/2 [LSW1-port-group]port link-type access [LSW1-port-group]port default vla…

掌握接口测试全流程,让你成为专业接口测试大师!

扫盲内容 1.为什么要做接口测试&#xff1f; 2.怎样做接口测试&#xff1f; 3.接口测测试点是什么&#xff1f; 4.接口测试都要掌握哪些知识&#xff1f; 5.其他相关知识&#xff1f; 一.为什么要做接口测试&#xff1f; ①.越底层发现bug&#xff0c;它的修复成本是越低…

Adobe XD学习攻略:成为设计大师的捷径!

Adobexd是什么软件&#xff1f;Adobexd是一站式UI/UX设计平台&#xff0c;结合设计和建立原型功能。用户可以使用Adobexd进行网页设计、移动应用程序设计和原型图绘制&#xff0c;也可以使用Adobexd软件更高效、更准确地完成静态编译和框架图到交互原型的转换。 然而&#xff…

ubuntu22.04 显卡驱动最简单的安装方法

1.拉取可选择安装的显卡驱动版本 sudo apt-get purge nvidia* #apt 的 update 和 upgrade 的区别 #apt update 命令只会获得系统上所有包的最新信息&#xff0c;并不会下载或者安装任何一个包。 #apt upgrade 命令来把这些包下载和升级到最新版本。 2.sudo apt update 3.安装…

如何批量给文件名加文字?

如何批量给文件名加文字&#xff1f;在我们的日常生活和工作中&#xff0c;经常会面临大量文件需要分类整理&#xff0c;并且可能需要在文件名后面添加一串文字作为备注。如果只是少量文件&#xff0c;我们可以手动逐个添加备注&#xff0c;但如果涉及上千甚至上万个文件&#…

vue项目下npm或yarn下安装echarts多个版本

最近在大屏展示的时候&#xff0c;用到了百度的echarts图表库&#xff0c;看完效果图后&#xff0c;又浏览了一下echarts官网案例&#xff0c;大同小异。但是搬砖过程中发现实际效果和demo相差甚远&#xff0c;一番折腾发现&#xff0c;项目中安装的是echarts4.x版本&#xff0…

重估拼多多,TEMU带给拼多多的不止是市值增量

监制 | 何玺 排版 | 叶媛 谁也没有想到&#xff0c;中国电商的格局改变居然如此之快。 12月29日&#xff0c;拼多多市值超越多年雄踞国内电商头把交椅的阿里巴巴&#xff0c;成为美股市值最大中概股。从此时开始&#xff0c;中国电商开始“拼”时代。 拼多多凭什么能超越阿里…

FFmpeg之将视频转为16:9(横屏)或9:16(竖屏)(三十六)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒体系统工程师系列【原创干货持续更新中……】🚀 人生格言: 人生从来没有捷径,只…

3、Linux_系统用户管理

1.Linux 用户管理 1.1概述 Linux系统是一个多用户多任务的操作系统&#xff0c;任何一个要使用系统资源的用户&#xff0c;都必须首先向系统管理员申请一个账号&#xff0c;然后以这个账号的身份进入系统。root用户是系统默认创建的管理员账号。 1.2添加用户 语法 useradd […