package cn.itheima01_LoginRegister;
import java.util.ArrayList;
import java.util.Date;
import java.util.Random;
import javax.swing.JOptionPane;
/*
* 事件监听功能的实现类
*/
public class LoginFrameController extends AbstractLoginFrame {
/*
* 登录方法
* 1.创建一个ArrayList<User>集合,用来存储用户信息
* 添加用户到集合
* 2.判断输入的验证码与正确的验证码是否相同
* 相同:
* 判断输入的用户名密码与已存在的用户信息是否一致
*
* 不同:
* 弹框提示,验证码输入有误,方法调用结束
*/
/*
//1.创建一个ArrayList<User>集合,用来存储用户信息
public static ArrayList<User> userList = new ArrayList<User>();
// 添加用户到集合
static {
User u1 = new User("张三","123456", new Date());
User u2 = new User("田七","123456", new Date());
userList.add(u1);
userList.add(u2);
}
*/
@Override
public void login(String userName, String passWd, String codesInput,
String codesLabel) {
// System.out.println("userName=" + userName);
// System.out.println("passWd=" + passWd);
// System.out.println("codesInput=" + codesInput);
// System.out.println("codesLabel=" + codesLabel);
//2.判断输入的验证码与正确的验证码是否相同
//codesInput 输入的验证码
//codesLabel 正确的验证码
if (codesInput.equals(codesLabel)) {
//验证码相同
//与每一个User对象中的信息进行用户名密码比较
for (int i = 0; i < Database.userList.size(); i++) {
//得到每一个User对象
User u = Database.userList.get(i);
//判断输入的用户名密码与已存在的用户信息是否一致
//userName 代表键盘输入的用户名
//passWd 代表键盘输入的密码
if (userName.equals(u.getUserName()) && passWd.equals(u.getPassword()) ) {
//相同, 提示登录成功
JOptionPane.showMessageDialog(this, "登陆成功");
//更新验证码
// 将再次生成的随机验证码放到对应的label中
codeLabel.setText(getCodes());
//方法调用结束
return;
}
}
//如果所有的用户都比较完毕,还没成功,则弹框,用户名或密码不正确
JOptionPane.showMessageDialog(this, "用户名或密码不正确");
} else {
//验证码不同,弹框提示,验证码输入有误,方法调用结束
JOptionPane.showMessageDialog(this, "验证码输入有误");
}
}
/*
* 返回一个随机生成的验证码
* 1.定义一个字符串,用来存储验证码
* 2.随机的生成4个字符添加到存储验证码的字符串中
*/
@Override
public String getCodes() {
// 1.定义一个字符串,用来存储验证码
String code = "";
/*
* 2.随机的生成4个字符添加到存储验证码的字符串中 2.1 明确验证码生成需要使用到的字符(大小写字母,数字)
* 2.2随机的在指定范围内生成4个字符,把每个字符添加到存储验证码的字符串中
*/
// 2.1 明确验证码生成需要使用到的字符(大小写字母,数字)
char[] chs = { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k',
'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w',
'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I',
'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U',
'V', 'W', 'X', 'Y', 'Z', '0', '1', '2', '3', '4', '5', '6',
'7', '8', '9' };
//2.2随机的在指定范围内生成4个字符,把每个字符添加到存储验证码的字符串中
for (int i = 0; i < 4; i++) {
//获取数组中随机的字符
Random r = new Random();
//获取到随机字符的位置
int index = r.nextInt(chs.length);
//获取随机字符
char ch = chs[index];
//把每个字符添加到存储验证码的字符串中
code += ch;
}
return code;
}
}
|
|