java实现登录注册界面
文章目录
- 数据库设计
- Admin.java
- Login_Register.java
- Login.java
- AdminRegister.java
- Register.java
- 代码
- Admin.java
- Login_Register.java
- Login.java
- AdminRegister.java
- Register.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
用户注册的图形化界面,包含四个文本框和一个注册按钮。当点击注册按钮时,会创建一个新的Registe
r类,把文本框中的变量传入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() {@Overridepublic 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 blocke1.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实现登录注册界面相关推荐
- Android开发:登录/注册界面的编写
目录 新建一个空项目(或Activity) 在xml中绘制登录界面 关掉ActionBar 运行(最终效果图) 后记 在实际开发中,几乎所有的APP都会涉及到用户注册/登录页面的制作,因此本文以And ...
- 【Vue作业]---Vue登录注册界面
1.引言 你是否有过相关设计结课作业,课程设计无处下手,网页要求的总数量太多?没有合适的模板?数据库,java,python,vue,html作业复杂工程量过大?毕设毫无头绪等等一系列问题.你想要解决 ...
- python做一个登录注册界面_Python 实现简单的登录注册界面
Python 实现简单的登录注册界面 注意:编写代码之前需要导入很重要的包 import tkinter as tk import pickle from tkinter import message ...
- Lance老师UI系列教程第三课-QQ登录注册界面的实现(android-2012最新版)
分类: android UI教程2012-08-06 22:37 3731人阅读 评论(6) 收藏 举报 uiandroidqqlayoutbutton UI系列教程第三课:腾讯登录注册界面的实现 今 ...
- AndroidStudio实现用户登录注册界面代码(一)
首先使用Android Studio的布局文件xml实现界面设计 第一步:新建工程项目MyAPP 选择Empty Activity 点击"下一步" 1.在res/layout/ac ...
- Android用户登录注册界面
用户登录注册界面开发及用户信息管理案例详解 刚开始接触Android编程,这算是我写的第一个简单工程,主要功能有:用户登录.注册.注销.修改密码.记住密码共5个基本操作,其内容涉及到以下几点: 1:B ...
- 安卓登录注册界面开发(附源码)
源码下载和博客访问:安卓登录注册界面开发(附源码) 前言 最近找安卓登录注册界面,找了好久也没找到比较满意的设计,最后想想其实登录和注册两个界面也不复杂,干脆花点时间自己弄. 界面预览 最后的效果如下 ...
- 小编程(三):用户登录注册界面开发及用户信息管理案例代码详解
用户登录注册界面开发及用户信息管理案例详解 刚开始接触Android编程,这算是我写的第一个简单工程,主要功能有:用户登录.注册.注销.修改密码.记住密码共5个基本操作,其内容涉及到以下几点: 1:B ...
- php mysql注册登录界面_php实现登录注册界面
php实现登录注册界面 首先你要搭建一个自己的数据库 我用wamp64创了一个people的数据库 具体操作可以参考该搭建链接: 这里就讲下我实现的功能代码: 创建sql.func.php实现一些基本 ...
- 右侧按钮登录注册html,翻转式用户登录注册界面设计
这是一款非常实用的翻转式用户登录注册界面设计效果.该用户登录注册界面使用纯CSS3来制作,在用户点击登录和注册两个按钮时,登录和注册界面可以以水平翻转的方式来回切换,效果非常的酷. 制作方法 HTML ...
最新文章
- [LeetCode] Longest Substring with At Most K Distinct Characters 最多有K个不同字符的最长子串...
- BATJ 常考的 21 条 Linux 命令
- Nat. Commun. | 训练人工智能以发现与疾病相关的基因
- Underscore实例教程
- 监督学习——随机梯度下降算法(sgd)和批梯度下降算法(bgd)
- airpods有时能连上有时连不上怎么办?
- 被阻塞的线程唤醒后的逻辑
- 【转】MySQL索引和查询优化
- 【空间统计】0 空间统计基础理论
- Ubuntu14.04桌面版 apt-get 方式安装LNMP
- Python 贪吃蛇 代码
- fso 拒绝访问_CTBS问题及解决.docx
- TOP Network技术总监Justin:TOP公链已率先实现多层状态分片
- 集成calibre到cadence virtuoso环境中 load: can‘t access file - “/opt/eda/Mentor/lib/calibre.skl“
- android实现 桌面移动悬浮窗口实现
- 第三章 ---- 了解各种 Linux 文本编辑器
- MP4/QuickTime的“ftyp” 名称完整列表
- python模型训练_python模型训练与预测练习
- 利用Java+DOS批处理实现网站刷流量
- 解决火狐下载文件完成,需要等待后才能打开的问题