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("添加用戶失敗!"); } } }
以上就是本文的全部內容,希望對大傢的學習有所幫助,也希望大傢多多支持WalkonNet。