//经典案例:用户注册与登录系统
//用户注册/登陆,将用户注册信息写入文件,注册时匹配填写信息
//当登录时,若用户已经存在时,显示登陆成功;否则登录失败
//****运用到的技能:对象序列化与反序列化,输入与输出流,事件与窗体监听,用户类和线性表的使用
//****注意事项:见程序末尾。
//主要方法:产生界面方法,写入文件方法,从文件中读取,信息匹配等
package day1;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import javax.swing.*;
public class userRegister implements ActionListener {
ArrayList<User> list = new ArrayList<User>();
JTextField jtf1 = new JTextField(14);
JTextField jtf2 = new JTextField(14);
JTextField jtf3 = new JTextField(14);
JTextField jtf4 = new JTextField(14);
JFrame jf;
public userRegister() throws Exception {
createGUI();
}
//当事件发生时,自动调用actionPerformed()方法
public void actionPerformed(ActionEvent e) {
String str = e.getActionCommand();
if ("注册".equals(str)) {
User user = new User();
user.setUserName(jtf1.getText());
user.setPassWord(jtf2.getText());
user.setEmail(jtf4.getText());
String rePassWord = jtf3.getText();
if (!(user.getPassWord().equalsIgnoreCase(rePassWord))) {
jtf2.setText("密码输入错误");
jtf3.setText("密码输入错误");
} else {
jf.setTitle("注册成功" + "欢迎您" + user.getUserName());
jtf2.setText("******");
jtf3.setText("******");
list.add(user);
}
} else if ("登录".equals(str)) {
try {
readFromFile();
} catch (Exception e1) {
e1.printStackTrace();}}}
//createGui()方法,用于生成图形用户界面
public void createGUI() {
jf = new JFrame("用户注册");
//当用户关闭窗口时,多个用户信息自动保存到本地文件系统(通过调用writeToFile()方法)
jf.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
try {
writeToFile();
} catch (IOException e1) {
e1.printStackTrace();
}
System.exit(0);
}
});
jf.setLayout(new GridLayout(4, 2));
JPanel jp1 = new JPanel();
jf.add(jp1);
JLabel jl1 = new JLabel("User Name:");
jp1.add(jl1);jp1.add(jtf1);
JPanel jp2 = new JPanel();
jf.add(jp2);
JLabel jl2 = new JLabel("Pass Word:");
jp2.add(jl2);jp2.add(jtf2);
JPanel jp3 = new JPanel();
jf.add(jp3);
JLabel jl3 = new JLabel("ReInputPwd:");
jp3.add(jl3);
jp3.add(jtf3);
JPanel jp4 = new JPanel();
jf.add(jp4);
JLabel jl4 = new JLabel("E-mail:");
jp4.add(jl4);jp4.add(jtf4);
JPanel jp5 = new JPanel();
jf.add(jp5);
JButton jb51 = new JButton("注册");
jb51.addActionListener(this);
JButton jb52 = new JButton("登录");
jb52.addActionListener(this);
jp5.add(jb51);jp5.add(jb52);
jf.setSize(500, 300);
jf.setVisible(true);
}
//readFromFile()方法用于从文件中读取用户对象信息,并将用户对象添加进线性表(list)
public void readFromFile() throws IOException, Exception {
FileInputStream fis = new FileInputStream(new File(
"d:\\userRegister.dat"));
ObjectInputStream ois = new ObjectInputStream(fis);
User read = null;
try {
while (true) {
read = (User) ois.readObject();
if (read == null) {
break;
}
list.add(read);
}
} catch (Exception e) {
}
// System.out.println(list);
User temp = new User(jtf1.getText(), jtf2.getText(), "q");
match(temp);
ois.close();
}
//writeToFile()方法,实现用户信息保存功能。
public void writeToFile() throws IOException {
File file = new File("d:\\userRegister.dat");
file.createNewFile();
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(
file));
for (User usr : list) {
oos.writeObject(usr);
}
oos.flush();
oos.close();
}
//当用户试图登录时,match()方法可以将用户输入与保存的信息,进行匹配。
//如果用户名和密码正确,登录成功;否则,登录失败。
public void match(User user) {
boolean match = false;
for (User usr : list) {
if (usr.getUserName().equals(user.getUserName())
&& usr.getPassWord().equals(user.getPassWord())) {
jf.setTitle("登录成功");
match = true;
break;
}
}
if (!match) {
jf.setTitle("用户名或密码错误,请重新输入!");
jtf1.setText("");
jtf2.setText("");
jtf3.setText("");
jtf4.setText("");
jtf1.requestFocus();
}
}
public static void main(String[] args) throws Exception {
new userRegister();
}
}
//------------------------------------------------------------//
User类是个用户信息类,包括userName,passWord,email等属性。
public class User implements java.io.Serializable {
private String userName;
private String passWord;
private String email;
public User() {
}
public User(String userName, String passWord, String email) {
super();
this.setUserName(userName);
this.setPassWord(passWord);
this.setEmail(email);
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPassWord() {
return passWord;
}
public void setPassWord(String passWord) {
this.passWord = passWord;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String toString(){
return userName+":"+passWord+":"+email;
}
}
//徐亮:如果将文件保存为txt等有一定格式的文件,对象读取与写入可能会发生错误。
本篇文章来自Java中文网:http://www.javaweb.cc/other/code/282093.shtml
分享到:
相关推荐
Java用户信息注册与登录系统.pdf
java用户注册登录系统
java连接MySQL注册登录系统,实现了增删改查功能,代码简单。
1、实验项目名称:用户登录系统 2、实验要求: (1)了解自定义异常的用法; (2)熟悉异常处理机制及创建自定义异常。 3、使用:在了解Java异常机制的基础上自己编写的实验报告。
3 2、 设计数据库 在注册登录系统中只涉及一个user表,这个表对于注册系统来说,每处理一个正确的注册信息后,就会向这个表添加一条记录。对于登录系统来说,每当用户输入正确的登录信息和验证码后,系统就会在user...
java登陆注册java登陆注册java登陆注册java登陆注册java登陆注册java登陆注册java登陆注册java登陆注册java登陆注册
java大作业或java 程序课设,功能齐全的员工信息管理系统,实现三种不同用户的登录注册。 本系统提供三种角色登录:管理员,公司员工,游客模式等, 如下: 管理员:几乎包揽了所有权限,可以处理员工的信息和管理...
这是一个java用户注册管理系统,对于学习java的人非常有用,希望大家多多下载。
本资源适合JAVA初学者,主要知识点是学会如何写文件读文件方法,理解集合的运用,以及方法的调用,系统还没有进行优化可以进一步优化,希望对所下载者有所帮助。
5.2系统注册与登录功能设计与实现 16 5.2.1用户登录功能的设计与实现 16 5.2.2用户注册功能的设计与实现 17 5.3网站功能模块设计与实现 18 5.3.1旅游景点功能设计与实现 18 5.3.2旅游民宿功能设计与实现 18 5.3.3...
【JAVA】个人信息管理系统设计与实现源代码 基于B/S设计 在日常办公中有许多常用的个人数据,如朋友电话、邮件地址、日程安排、日常记事、文件上传和下载,这些都可以用一个个人信息管理系统进行管理。个人信息管理...
Javaweb用户登录注册系统
这个系统是图书管理系统 实现了基于java集合的图书管理系统 分了包 该图书管理系统实现了一下功能:登录、注册、图书管理、图书的增加、删除、修改、查看、对管理员用户的增加、删除、修改和查看。是个人纯手打的...
是一个JavaEE项目,用servlet和JSP实现用户注册登录系统,用到了MD5加密技术,对数据进行保护。
使用SQLserver和JavaSE开发的用户注册管理系统,可以让初学者学习Java工程的创作流程,学习整个框架结构。
java 连接数据库实现用户登录功能 能运行成功,适合初学者借鉴学习。
该系统的用户是商城消费者和商城管理者,根据客户的要求,可以注册、登录、购物、查看购物车信息,管理员可以通过人脸识别登录对商品信息进行增加、修改、删除操作,可以对用户进行查看和删除。 图形可视化界面运行...
①用户登录/注册功能:用户登录和新用户注册功能,停车场需要用户登录后才能使用; ②用户信息管理功能:用户可以通过系统填写、更改用户信息; ③订单管理功能:对用户历史以及正在进行的订单可以进行查看、确认和...
Java蔬菜订购系统,本系统实现用户的注册、登录基本功能。用户拥有浏览蔬菜,购买蔬菜、加入购物车、修改个人信息、评论已完成订单、从购物车删除未付款订单、查看蔬菜评论信息的这些功能。管理员可以修改自己的信息...
一个用户注册登陆的系统,用到了MD5加密处理密码,数据库连接池connectionPool等技术。实现了注册,登陆,登陆之后修改用户信息等功能