zoukankan      html  css  js  c++  java
  • 2020年10月13日Java学习日记

    含有验证码的登陆界面

    package day02;
    import java.util.Random;
    import javax.swing.JOptionPane;
    public class DHK {
        public static void main(String[] args) {
            StringBuffer buffer = new StringBuffer("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ");
            StringBuffer sb = new StringBuffer();
            Random r = new Random();
            int range = buffer.length();
            for (int i = 0; i < 6; i++) {
                sb.append(buffer.charAt(r.nextInt(range)));
            }
            String name = JOptionPane.showInputDialog("登录名");
            String key = JOptionPane.showInputDialog("密码");
            JOptionPane.showMessageDialog(null, "验证码为" + sb, "验证", JOptionPane.INFORMATION_MESSAGE);
            for (;;) {
                String yanzheng = JOptionPane.showInputDialog("验证码");
                StringBuffer sb2 = new StringBuffer(yanzheng);
                if (sb2.toString().equals(sb.toString())) {
                    JOptionPane.showMessageDialog(null, "验证码成功", "验证", JOptionPane.INFORMATION_MESSAGE);
                    break;
                } else {
                    JOptionPane.showMessageDialog(null, "验证码错误请重新输入", "验证", JOptionPane.INFORMATION_MESSAGE);
                    continue;
                }
            }
        }
    }

     

    此代码没有设计登录名和密码的相关操作,只是简单生成了随机验证码,并做出判断:验证码输入是否正确,未做到将登录名,密码和验证码显示在同一提示框上。

    相关知识:

    1、StringBuffer 的基础用法

    https://blog.csdn.net/qq_36684107/article/details/83743899

     

    2、判断 StringBuffer类型对象是否相同

    在此问题中,需要将用户输入的验证码与系统随机生成的验证码进行比较。若二者相等,则打印验证码成功,退出循环;若二者不相等,则打印验证码输入错误,继续循环。由于用户输入的 yanzheng 为 String类型,系统生成的 sb 为StringBuffer类型,若想判断二者是否相等,则需要定义一个 sb2 ,使得其为 yanzheng 的 StringBuffer类型。

    定义一个 sb2 ,使得其为 yanzheng 的 StringBuffer类型:

    StringBuffer sb2 = new StringBuffer(yanzheng);

    具体判断方法为:

    sb2.toString().equals(sb.toString());
  • 相关阅读:
    jQuery 基本选择器
    JavaScriptif while for switch流程控制 JS函数 内置对象
    JavaScrip基本语法
    数据库 存储引擎 表的操作 数值类型 时间类型 字符串类型 枚举集合 约束
    数据库基础知识 管理员 用户登录授权的操作
    粘包的产生原理 以及如何解决粘包问题
    socket TCP DPT 网络编程
    2018年年终总结
    Android技术分享
    No accelerator found
  • 原文地址:https://www.cnblogs.com/9635741zly/p/14176453.html
Copyright © 2011-2022 走看看