您好,登錄后才能下訂單哦!
這篇文章主要介紹“java如何實(shí)現(xiàn)登錄注冊(cè)界面”,在日常操作中,相信很多人在java如何實(shí)現(xiàn)登錄注冊(cè)界面問題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”java如何實(shí)現(xiàn)登錄注冊(cè)界面”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!
既然只是一個(gè)登錄和注冊(cè)的界面,數(shù)據(jù)庫(kù)方面就只設(shè)計(jì)一個(gè)Admin表,表內(nèi)有三個(gè)值。
id就存登錄所需要的賬號(hào);
name存名字;
password存儲(chǔ)密碼
Admin.java
這個(gè)類代表用戶的實(shí)體類,包含三個(gè)變量,并對(duì)其進(jìn)行封裝
private String id; //帳號(hào) private String name; //姓名 private String password; //密碼
Login_Register.java
主程序的入口,創(chuàng)建一個(gè)JFrame窗口,窗口包括兩個(gè)待輸入的文本框,以及登錄和注冊(cè)兩個(gè)按鈕。
其中代碼框使用JPasswordField類,這樣就會(huì)使密碼文本框中的內(nèi)容顯示星號(hào)。
為登錄和注冊(cè)加監(jiān)聽器。
Login.java
在Login_Register中點(diǎn)擊登錄按鈕后就會(huì)創(chuàng)建一個(gè)新的Login類,該類中會(huì)有一個(gè)JudgeAdmin方法,用于連接數(shù)據(jù)庫(kù),判斷賬號(hào)密碼是否正確。
如果賬號(hào)正確,會(huì)彈出登錄成功的窗口,否則彈出賬號(hào)或密碼錯(cuò)誤的窗口。
AdminRegister.java
用戶注冊(cè)的圖形化界面,包含四個(gè)文本框和一個(gè)注冊(cè)按鈕。當(dāng)點(diǎn)擊注冊(cè)按鈕時(shí),會(huì)創(chuàng)建一個(gè)新的Register類,把文本框中的變量傳入Register類。
Register.java
用于判斷傳來(lái)的數(shù)據(jù)是否符合規(guī)則,并向數(shù)據(jù)庫(kù)添加新用戶,
當(dāng)用戶名和賬號(hào)為空時(shí),會(huì)彈出相應(yīng)的窗口。
并且要求密碼框和確認(rèn)密碼框中的密碼完全一致,否則不能注冊(cè)。
如果所有的條件都滿足,向數(shù)據(jù)庫(kù)中添加數(shù)據(jù),并彈出注冊(cè)成功的窗口。
Admin.java
package src; /* 管理員實(shí)體 */ public class Admin { private String id; //編號(hào) 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("賬號(hào):"); 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("注冊(cè)"); buttonregister.setBounds(375, 300, 70, 25); frame.add(buttonregister); frame.setBounds(400, 100, 800, 640); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); //為登錄按鈕添加監(jiān)聽器 buttonlogin.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { String ID = userID.getText(); String passwd = new String (password.getPassword()); //創(chuàng)建一個(gè)Admin用戶,把輸入框中的用戶名密碼和提出來(lái) Admin admin = new Admin(); admin.setID(ID); admin.setPassword(passwd); //登錄 Login login = new Login(); login.setAdmin(admin); if(login.JudgeAdmin()==0) { //彈出賬號(hào)或密碼錯(cuò)誤的窗口 JOptionPane.showMessageDialog(null, "賬號(hào)或密碼錯(cuò)誤", "賬號(hào)或密碼錯(cuò)誤", JOptionPane.WARNING_MESSAGE); //清除密碼框中的信息 password.setText(""); //清除賬號(hào)框中的信息 userID.setText(""); //System.out.println("登陸失敗"); } else { //彈出登錄成功的窗口 JOptionPane.showMessageDialog(null, "登陸成功", "登陸成功", JOptionPane.NO_OPTION); //點(diǎn)擊確定后會(huì)跳轉(zhuǎn)到主窗口 frame.setVisible(false); } } }); //為注冊(cè)按鈕添加監(jiān)聽器 buttonregister.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { //注冊(cè)頁(yè)面 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和密碼是否正確,如果正確,顯示登錄成功 * 如果錯(cuò)誤,彈出一個(gè)窗口,顯示賬號(hào)或密碼錯(cuò)誤 */ 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; /* * 管理員注冊(cè)界面 * */ public class AdminRegister extends JFrame{ AdminRegister () { init(); } void init() { JFrame frame = new JFrame("注冊(cè)管理員賬號(hào)"); frame.setLayout(null); JLabel nameStr = new JLabel("用戶名:"); nameStr.setBounds(250, 150, 100, 25); frame.add(nameStr); JLabel IDStr = new JLabel("賬號(hào):"); 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("確認(rèn)密碼:"); 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("注冊(cè)"); buttonregister.setBounds(350, 350, 70, 25); frame.add(buttonregister); frame.setBounds(400, 100, 800, 640); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); //為注冊(cè)按鈕增加監(jiān)聽器 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()); //創(chuàng)建Register類 Register register = new Register(); register.setID(ID); register.setName(name); register.setPassword(passwd); register.setconfirmpasswd(confrimpasswd); //如果注冊(cè)成功,返回登錄界面 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; } //判斷注冊(cè)的賬號(hào)是否符合規(guī)則 boolean JudgeRegister() throws SQLException, ClassNotFoundException { if(this.name.equals("")) { JOptionPane.showMessageDialog(null, "用戶名不能為空!", "用戶名", JOptionPane.ERROR_MESSAGE); return false; } if(this.ID.equals("")) { JOptionPane.showMessageDialog(null, "賬號(hào)不能為空!", "賬號(hào)為空", 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; } //符合規(guī)則,彈出注冊(cè)成功的窗口,并將賬號(hào)添加數(shù)據(jù)庫(kù) JOptionPane.showMessageDialog(null, "注冊(cè)成功"); addAdmin(); return true; } //向數(shù)據(jù)庫(kù)添加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("添加用戶失??!"); } } }
到此,關(guān)于“java如何實(shí)現(xiàn)登錄注冊(cè)界面”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。