学习心得——登录验证码

1.使用到了一个数组来存放26个大小写字母和0-9的数字

2.使用了随机产生数字的代码将数组里的密码随机抽取5位组成验证码,使用一个字符串变量保存

3.使用了窗口进行可视化界面的输出

4.通过判断验证码的正确与否实现跳转登录成功后的界面,和登录失败后的界面

5.通过点击重置按钮,可以实现验证码刷新功能

6.验证码输入错误之后,验证码会重新刷新

7.这次的难点在于怎么将26个大小写字母和数字存进数组里

8.在验证码那里,应该加上一个点击验证码可以刷新。还有判断验证码是否正确应该需要不区分大小写。验证码应该使用图片来进行展示。日后学习到了怎么才能实现这几个缺点,一定要记得来完善代码!!

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;

public class test6 extends JFrame implements ActionListener {
    JPanel jp1=new JPanel();
    JLabel jl1=new JLabel("系统登录");
    JPanel jp2=new JPanel();
    JTextField jt1=new JTextField(25);
    JPanel jp3=new JPanel();
    JTextField jt2=new JTextField(25);
    JPanel jp4=new JPanel();
    JTextField jt3=new JTextField(10);
    JLabel jl2=new JLabel();
    JPanel jp5=new JPanel();
    JButton jb1=new JButton("重置");
    JButton jb2=new JButton("登录");
    public test6(){
        setSize(500,400);
        setVisible(true);
        setTitle("系统登录");
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setLocation(700,400);
        setLayout(new GridLayout(5,1));
        add(jp1);
        add(jp2);
        add(jp3);
        add(jp4);
        add(jp5);
        jp1.add(jl1);
        jp2.add(jt1);
        jp3.add(jt2);
        jp4.add(jt3);
        jp4.add(jl2);
        jp5.add(jb1);
        jp5.add(jb2);
        jl2.setText(cipher());
        jb1.addActionListener(this);
        jb2.addActionListener(this);
    }
    public static void main(String[] args) {
        new test6();
    }
    public static String cipher(){
        String psw="";
        int x=0;
        char[]arry=new char[67];
        Random r=new Random();
       for (int i=0;i<26;i++){
        arry[i]=(char) ('A'+i);
        arry[i+26]=(char)('a'+i);
       }
       for (int i=52;i<62;i++){
           arry[i]=(char)('0'+x++);
       }
        for (int i=0;i<5;i++){
            int number=r.nextInt(62);
            char paswd= arry[number];
            psw=psw+paswd;
        }
        return psw;
    }

    public void actionPerformed(ActionEvent e) {
    if (jl2==e.getSource()){
        jl2.setText(cipher());
        }
    if (e.getSource()==jb1){
        jl2.setText(cipher());
        jt3.setText(" ");
    }
    if (e.getSource()==jb2){
        if (jt3.getText().equals(jl2.getText())){
            JOptionPane.showMessageDialog(null,"验证码正确,即将跳转");
        }
        else
        {
            JOptionPane.showMessageDialog(null,"验证码错误!请重新输入");
            jl2.setText(cipher());
        }
    }
    }
}

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

落日与鲸.520

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值