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)