java实现登录注册界面

本文实例为大家分享了java实现登录注册界面的具体代码,供大家参考,具体内容如下

数据库设计

既然只是一个登录和注册的界面,数据库方面就只设计一个Admin表,表内有三个值。

  • id就存登录所需要的账号;
  • name存名字;
  • password存储密码

Admin.java

这个类代表用户的实体类,包含三个变量,并对其进行封装

private String id;       //帐号
private String name;           //姓名
private String password;      //密码

Login_Register.java

主程序的入口,创建一个JFrame窗口,窗口包括两个待输入的文本框,以及登录和注册两个按钮。
其中代码框使用JPasswordField类,这样就会使密码文本框中的内容显示星号。
为登录和注册加监听器。

Login.java

在Login_Register中点击登录按钮后就会创建一个新的Login类,该类中会有一个JudgeAdmin方法,用于连接数据库,判断账号密码是否正确。
如果账号正确,会弹出登录成功的窗口,否则弹出账号或密码错误的窗口。

AdminRegister.java

用户注册的图形化界面,包含四个文本框和一个注册按钮。当点击注册按钮时,会创建一个新的Register类,把文本框中的变量传入Register类。

Register.java

用于判断传来的数据是否符合规则,并向数据库添加新用户,
当用户名和账号为空时,会弹出相应的窗口。

并且要求密码框和确认密码框中的密码完全一致,否则不能注册。
如果所有的条件都满足,向数据库中添加数据,并弹出注册成功的窗口。

代码

Admin.java

package src;
/*
管理员实体
*/

public class Admin {
    private String id;                 //编号
    private String name;           //姓名
    private String password;      //密码
    void setID(String id) {
        this.id=id;
    }
    void setName(String name) {
        this.name=name;
    }
    void setPassword(String password) {
        this.password=password;
    }
    
    String getID() {
        return this.id;
    }
    String getName() {
        return this.name;
    }
    String getPassword() {
        return this.password;
    }

}

Login_Register.java

package src;

import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;

public class Login_Register extends JFrame{    
    
    
    Login_Register() {
        init();
    }
    //登录界面初始化
    public void init() {
    JFrame frame = new JFrame("登录");
        frame.setLayout(null);
        
        JLabel nameStr = new JLabel("账号:");
        nameStr.setBounds(250, 200, 100, 25);
        frame.add(nameStr);
        
        JLabel passwordStr = new JLabel("密码:");
        passwordStr.setBounds(250, 250, 100, 25);
        frame.add(passwordStr);  
        
        JTextField userID = new JTextField();
        userID.setBounds(300, 200, 150, 25);
        frame.add(userID);
        
        JPasswordField password = new JPasswordField();
        password.setBounds(300, 250, 150, 25);
        frame.add(password);
        
        JButton buttonlogin = new JButton("登录");
        buttonlogin.setBounds(275, 300, 70, 25);
        frame.add(buttonlogin);
        
        JButton buttonregister = new JButton("注册");
        buttonregister.setBounds(375, 300, 70, 25);
        frame.add(buttonregister);  
        
        frame.setBounds(400, 100, 800, 640);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
        
        //为登录按钮添加监听器
         buttonlogin.addActionListener(new ActionListener() {  
            public void actionPerformed(ActionEvent e) {
                String ID = userID.getText();
                String passwd = new String (password.getPassword());
                  
                //创建一个Admin用户,把输入框中的用户名密码和提出来
                Admin admin = new Admin();
                admin.setID(ID);
                admin.setPassword(passwd);
                
                //登录
                Login login = new Login();
                login.setAdmin(admin);
          
                if(login.JudgeAdmin()==0) {
                    //弹出账号或密码错误的窗口
                    JOptionPane.showMessageDialog(null, "账号或密码错误", "账号或密码错误", JOptionPane.WARNING_MESSAGE);
                    //清除密码框中的信息
                    password.setText("");
                    //清除账号框中的信息
                    userID.setText("");
                    
                    //System.out.println("登陆失败");
                } else {
                    //弹出登录成功的窗口
                    JOptionPane.showMessageDialog(null, "登陆成功", "登陆成功", JOptionPane.NO_OPTION);
                    //点击确定后会跳转到主窗口
                    frame.setVisible(false);
                    
                        
                }
               
            }
        });
         
         //为注册按钮添加监听器
         buttonregister.addActionListener(new ActionListener() {
             public void actionPerformed(ActionEvent e) {
                 //注册页面
                 frame.setVisible(false);
                 AdminRegister ar = new AdminRegister(); 
             }
         });
    }
    
    public static void main(String []args) { 
       //主程序
       //登录窗口
        Login_Register login_register = new Login_Register();
    }
}

Login.java

package src;
/*
处理用户登录
*/

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class Login {

    Admin admin;
    
    void setAdmin(Admin admin) {
        this.admin=admin;
        //System.out.println(this.admin.getPassword()+"   " + this.admin.getID());
    }
    /*
     * JudgeAdmin()方法
     * 判断Admin的ID和密码是否正确,如果正确,显示登录成功
     * 如果错误,弹出一个窗口,显示账号或密码错误
     */
    private String driver = "com.mysql.cj.jdbc.Driver";
    private String url = "jdbc:mysql://localhost:3306/hotelsql?serverTimezone=UTC&characterEncoding=utf-8";
    private String user = "root";
    private String password = "12481632";
    
     public boolean login(Admin admin) throws SQLException, ClassNotFoundException {
            String sql="select * from admin where id=? and password=?";
            
            Class.forName(driver);
            Connection conn = DriverManager.getConnection(url, user, password);
            PreparedStatement ps = conn.prepareStatement(sql);
            
            ps.setString(1, admin.getID());
            ps.setString(2, admin.getPassword());
            ResultSet rs = ps.executeQuery();
            int ans = 0;
            if(rs.next()) {
                ans = 1;
            }  
            rs.close();
            ps.close();
            conn.close();
            if(ans == 1) {
                return true;
            }
            else return false;
        }
    int JudgeAdmin() {
        
            try {
                if(login(this.admin)) {
                    System.out.println("登录成功");
                    return 1;
                }else {
                    return 0;
                }
            }catch(Exception e) {
                //e.printStackTrace();
                //System.out.println("!!!!!!!!!");
            }
        return 0;
        
    }    
}

AdminRegister.java

package src;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.SQLException;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;

/*
 * 管理员注册界面
 * 
 */
public class AdminRegister extends JFrame{
    AdminRegister () {
        init();
    }
    void init() {
            JFrame frame = new JFrame("注册管理员账号");
            frame.setLayout(null);
            
            JLabel nameStr = new JLabel("用户名:");
            nameStr.setBounds(250, 150, 100, 25);
            frame.add(nameStr);
        
            JLabel IDStr = new JLabel("账号:");
            IDStr.setBounds(250, 200, 100, 25);
            frame.add(IDStr);

            JLabel passwordStr = new JLabel("密码:");
            passwordStr.setBounds(250, 250, 100, 25);
            frame.add(passwordStr);  
               
            JLabel confrimStr = new JLabel("确认密码:");
            confrimStr.setBounds(250, 300, 100, 30);
            frame.add(confrimStr);
            
            JTextField userName = new JTextField();
            userName.setBounds(320, 150, 150, 25);
            frame.add(userName);

            JTextField userID = new JTextField();
            userID.setBounds(320, 200, 150, 25);
            frame.add(userID);

            JPasswordField password = new JPasswordField();
            password.setBounds(320, 250, 150, 25);
            frame.add(password);

            JPasswordField confrimPassword = new JPasswordField();
            confrimPassword.setBounds(320, 300, 150, 25);
            frame.add(confrimPassword);
            
            JButton buttonregister = new JButton("注册");
            buttonregister.setBounds(350, 350, 70, 25);
            frame.add(buttonregister);
            

            frame.setBounds(400, 100, 800, 640);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setVisible(true);
          //为注册按钮增加监听器
            buttonregister.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    String name = userName.getText();
                    String ID = userID.getText();
                    String passwd = new String (password.getPassword());
                    String confrimpasswd = new String (confrimPassword.getPassword());
                    
                    //创建Register类
                    Register register = new Register();
                    register.setID(ID);
                    register.setName(name);
                    register.setPassword(passwd);
                    register.setconfirmpasswd(confrimpasswd);
                    
                    //如果注册成功,返回登录界面
                    try {
                        if(register.JudgeRegister()) {

                            frame.setVisible(false);
                            Login_Register login_register = new Login_Register();
                        }
                    } catch (SQLException e1) {
                        // TODO Auto-generated catch block
                        //e1.printStackTrace();
                    } catch (ClassNotFoundException e1) {
                        // TODO Auto-generated catch block
                        e1.printStackTrace();
                    }

                }
                
            });
    }
}

Register.java

package src;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

import javax.swing.JOptionPane;

public class Register {
    String name;
    String ID;
    String password;
    String confirmpassword;
    
    private String driver = "com.mysql.cj.jdbc.Driver";
    private String url = "jdbc:mysql://localhost:3306/hotelsql?serverTimezone=UTC&characterEncoding=utf-8";
    private String user = "root";
    private String sqlpassword = "12481632";
    
    void setName(String name) {
        this.name = name;
    }
    void setID(String ID) {
        this.ID = ID;
    }
    void setPassword(String password) {
        this.password = password;
    }
    void setconfirmpasswd(String confirmpassword) {
        this.confirmpassword = confirmpassword;
    }
    
    
    //判断注册的账号是否符合规则
    boolean JudgeRegister() throws SQLException, ClassNotFoundException {
        
        if(this.name.equals("")) {
            JOptionPane.showMessageDialog(null, "用户名不能为空!", "用户名", JOptionPane.ERROR_MESSAGE);
            return false;
        }
        
        if(this.ID.equals("")) {
            JOptionPane.showMessageDialog(null, "账号不能为空!", "账号为空", JOptionPane.ERROR_MESSAGE);
            return false;
        }
        
        if(this.password.equals("")) {
            JOptionPane.showMessageDialog(null, "密码不能为空!", "密码为空", JOptionPane.ERROR_MESSAGE);
            return false;
        }
        
        if(!this.password.equals(this.confirmpassword)) {
            JOptionPane.showMessageDialog(null, "两次输入的密码不一致!", "密码不一致", JOptionPane.ERROR_MESSAGE);
            return false;
        }
        
        //符合规则,弹出注册成功的窗口,并将账号添加数据库
        JOptionPane.showMessageDialog(null, "注册成功");
        addAdmin();
        return true;
    }
    
    //向数据库添加Admin账户
    void addAdmin() throws ClassNotFoundException, SQLException {
        String sql="insert into admin (id, name, password) values (?,?,?)";
        Class.forName(driver);
        try {
            Connection conn = DriverManager.getConnection(url, user, sqlpassword);
            PreparedStatement ps = conn.prepareStatement(sql);
            ps.setString(1, this.ID);
            ps.setString(2, this.name);
            ps.setString(3, this.password);
            ps.executeUpdate();
            ps.close();    
            conn.close();
            
        }catch(SQLException ex) {
            System.out.println("添加用户失败!");
        }
        
    }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • JavaWeb实现用户登录与注册功能(服务器)

    本文实例为大家分享了JavaWeb实现用户登录与注册功能的具体代码,供大家参考,具体内容如下 用到的知识 客户端:HTML CSS JS (JQuery) 服务器:JAVA基础  JSP   Servlet  JDBC  Tomcat 数据库:MySQL 用到的Jar包 druid数据库连接池  dbutils JDBC数据库操作工具  MySQL jar包 总体结构: 客户端数据库部分网址 思路: 服务器部分采用JavaEE三层架构 (1).表现层:通俗讲就是展现给用户的界面,即用户在使用一个

  • Java简易登录注册小程序

    登录注册小代码,将学过的一些小知识融合在一起进行了使用,加深印象.本例中如果有注释不详细的地方,详见其它博客. 功能介绍:简单的登录注册系统,使用了数据库sqlserver.单例模式.正则表达式以及图形化开发等知识. 1.在登录界面,可以登录或者注册用户. 注册用户界面,按照正则表达式规定的格式要求来输入信息,若有误,则重新输入. 2.点击注册,首先连接SQLserver数据库,连接成功则会判断该用户名是否已经存在,若存在,则给出提示.反之则进行注册. 3.登录界面,点击登录按钮时,首先与数据库

  • JAVA简单实现MD5注册登录加密实例代码

    开发环境:jdk1.7,eclipse 框架:springmvc,mybatis 工具:maven 以下代码复制即可实现MD5加密 创建一个mave项目,加web.不懂得可以搜索一下就有了. 注册用户的JSP页面代码如下. <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html PU

  • Java实现登录与注册页面

    用java实现的登录与注册页面,实现了客户端(浏览器)到服务器(Tomcat)再到后端(servlet程序)数据的交互.这里在注册页面加入了验证码验证. 注册的html代码,页面非常丑!!请见谅.. <body> <fieldset id="">   <legend>注册页面</legend>   <form action="/day02/register2" method="post" id

  • Java+mysql用户注册登录功能

    最近刚刚开始学习mysql,所以就写了这个很基本的用户注册登录的功能来练练手.虽然这个很简单,但是我还是看到了自己学习的进步,很开心.哈哈哈. 这里要注意数据表的建立: 直接上代码吧,里面注释很详细了. package client; import java.sql.*; import java.util.*; public class Client { /** * 用以实现用户的注册和登录 */ private static String username;//用户登录注册的姓名 privat

  • JavaWeb实现用户登录与注册功能

    本文实例为大家分享了JavaWeb实现用户登录与注册的具体代码,供大家参考,具体内容如下 所用知识 客户端:HTML CSS JS (JQuery) 服务器:JAVA基础  JSP   Servlet  JDBC  Tomcat 数据库:MySQL 用到的Jar包 druid数据库连接池  dbutils JDBC数据库操作工具  MySQL jar包 实现效果基本为注册用户,注册成功将数据写入数据库,登录过程查看数据库中是的用户名,密码是否匹配,匹配跳转到登录成功页面,失败返回登录页面. 思路

  • Servlet+JavaBean+JSP打造Java Web注册与登录功能

    采用Java Web所实现的MVC结构图如下,其中控制器部分采用Servlet来实现,模型部分采用JavaBean来实现,而大部分的视图采用Jsp页面来实现. 思想基础 JSP+JavaBean两层结构工作原理应该是比较熟悉的,也比较好理解. 但是有一点必须要清楚就是用户通过浏览器来发送网页的请求,此请求到达服务器后在服务器端查找对应的网页,如果是首次请求(第二次就不用解释执行了),对于JSP来说要生成Servlet,然后通过Servlet引擎来执行 Servlet,把调用JavaBean的结果

  • JavaWeb实现用户登录注册功能实例代码(基于Servlet+JSP+JavaBean模式)

    下面通过通过图文并茂的方式给大家介绍JavaWeb实现用户登录注册功能实例代码,一起看看吧. 一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp负责数据显示,javabean负责封装数据. Servlet+JSP+JavaBean模式程序各个模块之间层次清晰,web开发推荐采用此种模式. 这里以一个最常用的用户登录注册程序来讲解Servlet+JS

  • JavaWeb简单用户登录注册实例代码(有验证码)

    需求 编写login登录界面(用户名,密码,验证码,登陆按钮,注册按钮) 设计关系数据库(编号,用户名,密码) 编写注册功能,将数据存储在数据库中.(姓名不能重复,设为主键,重复会注册失败) 编写登录功能 .首先获取验证码,先判断验证码是否正确,不正确则显示验证码错误.验证码正确后再获取用户名和密码,进行数据库的搜索比对,若正确则重定向到成功的界面,并且将用户名显示. jar包 技术选型 Servlet + JSP + Mysql + JDBCTemplate + Druid + BeanUti

  • Java实现简单登录注册

    本文实例为大家分享了Java实现简单登录注册的具体代码,供大家参考,具体内容如下 一.登录 1. 内容介绍 定义一个内置的账号和密码,写好账号输入.密码输入.随机验证码生成.验证码输入方法(3个输入方法没有使用重载)以及账号密码验证码比较方法.调用这些方法实现简单的控制台登录. 2. 思路解析 方法调用.优先判断验证码,在判断账号最后判断密码. 3. 代码实现 import java.util.Random; import java.util.Scanner; public class Logi

随机推荐