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("添加用户失败!");         }     } }

推荐阅读