利用Java图形化界面组件Swing写一个简易的登录界面

简介: 利用Java图形化界面组件Swing写一个简易的登录界面

实际效果

介绍

使用的类

GridBagConstraints类

创建对象后可以通过调用访问成员属性来修改数值

再作为参数传入方法来指定类型的属性(宽高)

密码框JPasswordField

输入的内容是默认是隐藏的

重写actionPerformed方法

actionPerformed 方法是为了实现自定义的身份验证逻辑。通过重写这个方法,我们可以在用户点击登录按钮时执行我们自己的验证逻辑,而不仅仅是使用默认的行为。

在实际开发中,重写方法可以让我们根据具体需求来定制代码逻辑,使得程序更加灵活和符合特定的业务需求。这样做可以提高代码的可维护性和可扩展性,同时也有助于避免代码重复。

这边也提高了程序的可拓展性 我们可以接入双列集合中的用户名和密码

代码

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
 
public class LoginSystem extends JFrame implements ActionListener {
    private JTextField usernameField;
    private JPasswordField passwordField;
 
    public LoginSystem() {
 
        //初始化界面
        setTitle("登录系统");
        setSize(300, 150);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 
        //创建面板对象
        JPanel panel = new JPanel(new GridBagLayout());
        //GridBagConstraints是在图形化界面中控制组件大小和位置的
        GridBagConstraints c = new GridBagConstraints();
        //可以自定义组件的位置
        c.insets = new Insets(5, 5, 5, 5);
 
        //创建无图像且标题为空字符串JLabel
        JLabel userLabel = new JLabel("用户名:");
        c.gridx = 0;
        c.gridy = 0;
        panel.add(userLabel, c);
 
        //创建文本框JTextField
        usernameField = new JTextField(15);
        c.gridx = 1;
        c.gridy = 0;
        panel.add(usernameField, c);
 
        //创建无图像且标题为空字符串JLabel
        JLabel passLabel = new JLabel("密码:");
        c.gridx = 0;
        c.gridy = 1;
        panel.add(passLabel, c);
 
        //创建密码框JPasswordField
        passwordField = new JPasswordField(15);
        c.gridx = 1;
        c.gridy = 1;
        panel.add(passwordField, c);
 
        //创建按钮的对象
        JButton loginButton = new JButton("登录");
        loginButton.addActionListener(this);
        c.gridx = 0;
        c.gridy = 2;
        c.gridwidth = 2;
        c.anchor = GridBagConstraints.CENTER;
        panel.add(loginButton, c);
 
        //最后把面板添加进去
        add(panel);
 
        //可以将窗口设置到屏幕中央
        setLocationRelativeTo(null);
 
        //设置窗口可显示
        setVisible(true);
    }
 
    @Override
    public void actionPerformed(ActionEvent e) {
        String username = usernameField.getText();
        String password = new String(passwordField.getPassword());
        // 在这里可以添加验证逻辑,比如检查用户名和密码是否匹配
        if (username.equals("Dduo") && password.equals("123")) {
            JOptionPane.showMessageDialog(this, "登录成功");
        } else {
            JOptionPane.showMessageDialog(this, "登录失败,请重试");
        }
    }
 
    public static void main(String[] args) {
        SwingUtilities.invokeLater(() -> new LoginSystem());
    }
}
目录
相关文章
|
6月前
|
Java 数据安全/隐私保护 索引
(Java)Java里JFrame窗体的基本操作(组件篇-3)
回顾 说过了下拉框和下拉列表,本篇内容将了解滚动面板和各类输入框 什么是组件? 如果不熟悉组件,可以将组件看作是某个Form表单中的表单元素,组件可以完善JFrame窗口的布局,以及一些功能; 本篇内容中所有的组件所用到的类全都来自于javax.swing这个包中,记得引入; 另:在使用组件前,请先将窗体中的内容类给实例化出来进行操作,代码如下: Container c = getContentPane(); JScollPane JScollPane类,说的就是滚动面板。它不同于其他组件,它是一个容器,
153 2
|
6月前
|
Java 索引 容器
(Java)Java里JFrame窗体的基本操作(组件篇-2)
回顾 这算是JFrame窗体基本操作的组件第二篇了,上一篇说过了单选框,复选框,按钮。 在这一篇中,我会说明下拉框和列表框 什么是组件? 自行百度:java中JFrame窗体里的组件是什么? 名字都给你想好了 ( :I ) JComBox下拉框 JComBox类,就是下拉框,实例化出来后,要填写泛型<>,添加是什么数据类型的内容,泛型中就写上该数据类型; JComboBox<?> combox = new JComboBox<>(); 以下实例化下拉框的时候我泛型写的全
188 1
|
6月前
|
Java 容器
(Java)Java里JFrame窗体的基础操作(组件-1)
如果不熟悉组件,可以将组件看作是某个Form表单中的表单元素,当然这只是在不熟悉组件的前提下。如果深入了解了组件,那么它有着非常多的组件,这些组件可以完善JFrame窗口的布局,以及一些功能; 本篇内容中所有的组件所用到的类全都来自于javax.swing这个包中,记得引入
147 1
|
8月前
|
消息中间件 Java Kafka
Java 事件驱动架构设计实战与 Kafka 生态系统组件实操全流程指南
本指南详解Java事件驱动架构与Kafka生态实操,涵盖环境搭建、事件模型定义、生产者与消费者实现、事件测试及高级特性,助你快速构建高可扩展分布式系统。
412 7
|
10月前
|
Java 数据库连接 数据库
Java 组件详细使用方法与封装实战指南
本指南详解Java核心组件使用与封装技巧,涵盖跨平台开发、面向对象编程、多线程、数据库操作等关键内容,并提供工具类、连接池、异常及响应结果的封装方法。结合Spring框架、MyBatis、Spring Boot等主流技术,助你掌握高质量Java组件设计与开发实践。
290 2
|
移动开发 前端开发 Java
Java最新图形化界面开发技术——JavaFx教程(含UI控件用法介绍、属性绑定、事件监听、FXML)
JavaFX是Java的下一代图形用户界面工具包。JavaFX是一组图形和媒体API,我们可以用它们来创建和部署富客户端应用程序。 JavaFX允许开发人员快速构建丰富的跨平台应用程序,允许开发人员在单个编程接口中组合图形,动画和UI控件。本文详细介绍了JavaFx的常见用法,相信读完本教程你一定有所收获!
14529 5
Java最新图形化界面开发技术——JavaFx教程(含UI控件用法介绍、属性绑定、事件监听、FXML)
|
存储 IDE Java
漂亮不是梦!Java Swing美化攻略
Java Swing 是一个为 Java 设计的 GUI 工具包,提供文本框、按钮等组件。尽管其外观可定制,通过 Look and Feel(LAF)机制改变应用风格,如 Darcula 和 FlatLaf,但现已淡出主流视野,主要应用于 IDE 领域,如 IntelliJ IDEA 和 Eclipse。相比其他 GUI 框架,Swing 的发展前景有限。
736 1
|
开发框架 JavaScript 前端开发
HarmonyOS UI开发:掌握ArkUI(包括Java UI和JS UI)进行界面开发
【10月更文挑战第22天】随着科技发展,操作系统呈现多元化趋势。华为推出的HarmonyOS以其全场景、多设备特性备受关注。本文介绍HarmonyOS的UI开发框架ArkUI,探讨Java UI和JS UI两种开发方式。Java UI适合复杂界面开发,性能较高;JS UI适合快速开发简单界面,跨平台性好。掌握ArkUI可高效打造符合用户需求的界面。
719 8
|
存储 消息中间件 安全
JUC组件实战:实现RRPC(Java与硬件通过MQTT的同步通信)
【10月更文挑战第9天】本文介绍了如何利用JUC组件实现Java服务与硬件通过MQTT的同步通信(RRPC)。通过模拟MQTT通信流程,使用`LinkedBlockingQueue`作为消息队列,详细讲解了消息发送、接收及响应的同步处理机制,包括任务超时处理和内存泄漏的预防措施。文中还提供了具体的类设计和方法实现,帮助理解同步通信的内部工作原理。
JUC组件实战:实现RRPC(Java与硬件通过MQTT的同步通信)
|
Java 数据安全/隐私保护 容器
java当中组件和窗口的相容问题(里面包含了这些方法的作用)
Java窗口和组件的布局指南,教你如何打造一个既美观又实用的GUI界面。
183 0