A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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;
        }

}

1 个回复

倒序浏览
很赞~~~谢谢分享.
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马