java实现登录注册界面

网友投稿 469 2022-07-22


本文实例为大家分享了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.equaxhiQDrols("")) {

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

}

}

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java如何实现字符串每隔4位加空格
下一篇:Java 多线程并发 ReentrantReadWriteLock详情
相关文章

 发表评论

暂时没有评论,来抢沙发吧~