Java|系统登录功能的设计与制作

简介: Java|系统登录功能的设计与制作

问题描述

登录模块是任何一个系统都不可或缺的一个模块,是系统的安全之门。登录模块通常由内容面板和登录窗体构成。

解决方案

1 内容面板

所有组件都要布置在窗体的内容面板上,而登录模块的内容面板使用了背景图片来美化窗体界面,这就需要继承Swing的JPanel类来编写自己的面板类,然后将该面板类作为窗体的内容面板。

内容面板的程序代码如下:

package com.lzw.login;

import java awt.*;

import java.net.URL;

import javax.swing.*;

 

public class LoginPanel extends JPanel{

 

    public int width,height;

    private image img;

 

    // 创建背景图片

    public LoginPanel(){

        super();

        URL url = getClass().getResource("......"); // 获取图片的URL。

        img = new imagelcon(url).getimage();

    }

 

    // 图片展示的位置

    protected void paintComponent(Graphics g){

        super.paintComponent(g);

        g.drawimage(img,0,0,this); // 以左上角为起点

    }

}

2 登录窗体

创建LoginDialog类,该类继承JFrame类,成为一个窗体。将内容面板设为LoginPanel类的对象。该窗体用于布置各种组件,来实现登录的界面。

窗体主要用到的控件如下表所示。

图1 控件表

3 事件处理

登录按钮的事件处理

登录按钮用于执行用户名和密码的验证工作,如果验证用户名和密码有效,则启动系统,否则禁止进入系统。

在登录按钮的动作事件监听器中,首先获取用户输入的用户名与密码信息,然后调用Dao类的checkLogin()方法,如果该方法返回true,则登录成功,否则禁止用户登录,并显示提示语句。

程序重要代码如下:

private JButton getLoginButton(){

    if(loginButton == null){

        loginButton = new JButton();

        loginButton.setBounds(new Rectangle(109,114,48,20));

        loginButton.setlcon(new imagelcon(getClass().getResource("..."))); // 给登录图标也添加上监听器

        loginButton.addActionListener(new ActionListener(){

            public void actionPerformed(ActionEvent e){

                try{

                    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

                   

                    // 验证登录信息

                    userStr = userField.getText(); // 获取用户名

                    Sting passStr = new String(passwordField.getPassword()); // 获取密码

 

                    // 开始验证

                    if(!Dao.checkLogin(userStr,passStr)){

                        JOptionPane.showMessageDialog(loginDialog.this,"信息核对错误!请输入正确信息!",JOptionPane.ERROR_MESSAGE);

 

                    return;

                    }

                }catch(Exception e1){

                    e1.printStackTrace();

                }

 

                // 显示主窗体

                mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

                mainFrame.setVisible(true);

                mainFrame.getCzyStateLabel().setText(userStr);

                setVisible(false); // 隐藏窗体

            }

        })

    }

}

4 密码文本框的回车响应

在系统登录窗体的密码文本框中添加了按键事件监听器,它在获取到密码文本框输入的回车字符时将执行登录事件。此过程与单击登录按钮具有相同的作用。也就是说,输完密码后,用敲回车代替单击登录按钮。

程序代码如下:

private JpasswordField getPasswordField(){

    if(passwordField == null){

        passwordField == new JPasswordField();

        passwordField.setBounds(new Rectangle(143,69,125,22));

        passwordField.addKeyListener(

            new java.awt.event.KeyAdapter(){

            public void keyTyped(java.awt.event.KeyEvent e){

                if(e.getKeyChar() == '\n'){

                    loginButton.doClick();

                }

            }

        });

    }

    return passwordField;

}

结语

在本案例中最核心的技术就是对checkLogin()方法的使用,该方法是验证用户登录信息的关键所在。



目录
相关文章
|
9月前
|
设计模式 消息中间件 传感器
Java 设计模式之观察者模式:构建松耦合的事件响应系统
观察者模式是Java中常用的行为型设计模式,用于构建松耦合的事件响应系统。当一个对象状态改变时,所有依赖它的观察者将自动收到通知并更新。该模式通过抽象耦合实现发布-订阅机制,广泛应用于GUI事件处理、消息通知、数据监控等场景,具有良好的可扩展性和维护性。
631 8
|
9月前
|
移动开发 监控 小程序
java家政平台源码,家政上门清洁系统源码,数据多端互通,可直接搭建使用
一款基于Java+SpringBoot+Vue+UniApp开发的家政上门系统,支持小程序、APP、H5、公众号多端互通。涵盖用户端、技工端与管理后台,支持多城市、服务分类、在线预约、微信支付、抢单派单、技能认证、钱包提现等功能,源码开源,可直接部署使用。
639 24
|
9月前
|
安全 前端开发 Java
使用Java编写UDP协议的简易群聊系统
通过这个基础框架,你可以进一步增加更多的功能,例如用户认证、消息格式化、更复杂的客户端界面等,来丰富你的群聊系统。
312 11
|
9月前
|
机器学习/深度学习 人工智能 自然语言处理
Java与生成式AI:构建内容生成与创意辅助系统
生成式AI正在重塑内容创作、软件开发和创意设计的方式。本文深入探讨如何在Java生态中构建支持文本、图像、代码等多种生成任务的创意辅助系统。我们将完整展示集成大型生成模型(如GPT、Stable Diffusion)、处理生成任务队列、优化生成结果以及构建企业级生成式AI应用的全流程,为Java开发者提供构建下一代创意辅助系统的完整技术方案。
414 10
|
9月前
|
人工智能 监控 Java
Java与AI智能体:构建自主决策与工具调用的智能系统
随着AI智能体技术的快速发展,构建能够自主理解任务、制定计划并执行复杂操作的智能系统已成为新的技术前沿。本文深入探讨如何在Java生态中构建具备工具调用、记忆管理和自主决策能力的AI智能体系统。我们将完整展示从智能体架构设计、工具生态系统、记忆机制到多智能体协作的全流程,为Java开发者提供构建下一代自主智能系统的完整技术方案。
1065 4
|
9月前
|
机器学习/深度学习 分布式计算 Java
Java与图神经网络:构建企业级知识图谱与智能推理系统
图神经网络(GNN)作为处理非欧几里得数据的前沿技术,正成为企业知识管理和智能推理的核心引擎。本文深入探讨如何在Java生态中构建基于GNN的知识图谱系统,涵盖从图数据建模、GNN模型集成、分布式图计算到实时推理的全流程。通过具体的代码实现和架构设计,展示如何将先进的图神经网络技术融入传统Java企业应用,为构建下一代智能决策系统提供完整解决方案。
688 0
|
10月前
|
JavaScript Java 大数据
基于JavaWeb的销售管理系统设计系统
本系统基于Java、MySQL、Spring Boot与Vue.js技术,构建高效、可扩展的销售管理平台,实现客户、订单、数据可视化等全流程自动化管理,提升企业运营效率与决策能力。
|
数据采集 Java 数据安全/隐私保护
Java爬虫——模拟登录知乎
  登录界面,首先随意输入一个账号,登录查看发送表单的请求    可以发现请求是Post : https://www.zhihu.com/login/phone_num 发送的表单是 _xsrf: password: 密码 无需加密captcha: 验证码 无需验证码时为不用此...
1784 0
|
9月前
|
JSON 网络协议 安全
【Java】(10)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
419 1
|
9月前
|
JSON 网络协议 安全
【Java基础】(1)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
389 1