您好,登錄后才能下訂單哦!
這篇文章主要介紹“java如何實現登錄注冊界面”,在日常操作中,相信很多人在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("添加用戶失敗!"); } } }
到此,關于“java如何實現登錄注冊界面”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。