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()方法的使用,该方法是验证用户登录信息的关键所在。



目录
相关文章
|
3天前
|
JavaScript Java BI
Java毕设之新生报到系统的设计与实现
Java毕设之新生报到系统的设计与实现
10 3
|
1天前
|
前端开发 JavaScript Java
前端和Java验签以太坊钱包签名实现中心化登录
前端和Java验签以太坊钱包签名实现中心化登录
19 8
|
1天前
|
监控 前端开发 Java
Java基于B/S医院绩效考核管理平台系统源码 医院智慧绩效管理系统源码
医院绩效考核系统是一个关键的管理工具,旨在评估和优化医院内部各部门、科室和员工的绩效。一个有效的绩效考核系统不仅能帮助医院实现其战略目标,还能提升医疗服务质量,增强患者满意度,并促进员工的专业成长
8 0
|
1天前
|
Java 云计算
Java智能区域医院云HIS系统SaaS源码
云HIS提供标准化、信息化、可共享的医疗信息管理系统,实现医患事务管理和临床诊疗管理等标准医疗管理信息系统的功能。优化就医、管理流程,提升患者满意度、基层首诊率,通过信息共享、辅助诊疗等手段,提高基层医生的服务能力构建和谐的基层医患关系。
16 2
|
2天前
|
前端开发 Java 关系型数据库
Java医院绩效考核系统源码B/S架构+springboot三级公立医院绩效考核系统源码 医院综合绩效核算系统源码
作为医院用综合绩效核算系统,系统需要和his系统进行对接,按照设定周期,从his系统获取医院科室和医生、护士、其他人员工作量,对没有录入信息化系统的工作量,绩效考核系统设有手工录入功能(可以批量导入),对获取的数据系统按照设定的公式进行汇算,且设置审核机制,可以退回修正,系统功能强大,完全模拟医院实际绩效核算过程,且每步核算都可以进行调整和参数设置,能适应医院多种绩效核算方式。
20 2
|
3天前
|
JavaScript 小程序 Java
基于java的少儿编程网上报名系统
基于java的少儿编程网上报名系统
11 2
|
3天前
|
JavaScript 小程序 Java
Java毕设之在线医疗服务系统的设计与实现
Java毕设之在线医疗服务系统的设计与实现
8 3
|
3天前
|
JavaScript 小程序 Java
Java毕设之KTV点歌系统
Java毕设之KTV点歌系统
11 2
|
12月前
|
Java
java中获取当前系统日期
java中获取当前系统日期
68 0
JAVA 获取系统日期时间
JAVA 获取系统日期时间
250 0