首页 > 其他分享 >验证码

验证码

时间:2024-09-29 20:01:09浏览次数:9  
标签:captchaLabel 验证码 private add captchaText new

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

public class CaptchaGUI extends JFrame {

    private JLabel captchaLabel;
    private JTextField inputField;
    private JButton submitButton;
    private String captchaText;

    public CaptchaGUI() {
        setTitle("请输入验证码");
        setSize(400, 200);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLocationRelativeTo(null);

        // 创建主面板
        JPanel mainPanel = new JPanel(new BorderLayout());

        // 生成验证码
        captchaText = generateCaptcha();

        // 创建验证码标签
        captchaLabel = new JLabel(captchaText);
        captchaLabel.setFont(new Font("Monospaced", Font.BOLD, 30));
        captchaLabel.setHorizontalAlignment(SwingConstants.CENTER);
        mainPanel.add(captchaLabel, BorderLayout.NORTH);

        // 创建输入框和提交按钮
        JPanel inputPanel = new JPanel(new FlowLayout());
        inputField = new JTextField(10);
        inputPanel.add(inputField);

        submitButton = new JButton("提交");
        submitButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                checkCaptcha();
            }
        });
        inputPanel.add(submitButton);

        mainPanel.add(inputPanel, BorderLayout.CENTER);

        // 添加主面板到窗口
        add(mainPanel);
    }

    private String generateCaptcha() {
        String chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
        Random random = new Random();
        StringBuilder captcha = new StringBuilder();
        for (int i = 0; i < 4; i++) {
            captcha.append(chars.charAt(random.nextInt(chars.length())));
        }
        return captcha.toString();
    }

    private void checkCaptcha() {
        String userInput = inputField.getText();
        if (userInput.equals(captchaText)) {
            JOptionPane.showMessageDialog(this, "验证码正确!");
        } else {
            JOptionPane.showMessageDialog(this, "验证码错误!请重试。");
            captchaText = generateCaptcha();
            captchaLabel.setText(captchaText);
            inputField.setText("");
        }
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                new CaptchaGUI().setVisible(true);
            }
        });
    }
}

标签:captchaLabel,验证码,private,add,captchaText,new
From: https://www.cnblogs.com/bawangji666/p/18440660

相关文章

  • PbootCMS后台登录验证码不显示怎么回事?
    在PbootCMS后台登录时,如果验证码不显示,可能有几种原因。以下是一些常见的故障排查方法和解决方案:故障排查与解决方案1.检查浏览器设置清除缓存和Cookies:清除浏览器缓存和Cookies,尝试重新登录。禁用浏览器插件:禁用浏览器中的广告拦截插件或其他可能影响显示的插件,如A......
  • PbootCMS后台登录验证码有数值,但是看不清是怎么回事?
    当PbootCMS后台登录验证码在某些PHP版本下显示不清楚时,通常是因为PHP版本不兼容导致的。验证码背景图黑色和文字颜色深色相冲也会导致这个问题。以下是详细的解决方法:原因分析验证码背景图黑色和文字颜色深色相冲,导致验证码难以看清。这通常是由于PHP版本不兼容造成的。解决方......
  • 解决 PBootCMS 后台登录不显示验证码的问题
    编辑 php.ini 文件:在“PHP.INI设置”中,找到并编辑 php.ini 文件。确保以下配置项正确设置:;图片处理扩展extension=gd.so;图片缓存目录;可以设置为/tmp或其他临时目录session.save_path="/tmp";图片缓存权限session.save_handler=files;图片缓存......
  • PbootCms后台登陆不显示验证码【阿里云虚拟主机】
    问题描述在使用阿里云虚拟主机部署PBootCMS时,后台登录界面不显示验证码图片。这通常是由于阿里云虚拟主机的配置问题导致的。解决方案登录阿里云控制台进入虚拟主机管理进入高级环境设置编辑 php.ini 文件详细步骤登录阿里云控制台登录阿里云官网:https://www.al......
  • pbootcms留言板取消验证码提交自定义表单时取消验证码
    在PBootCMS中取消留言板的验证码功能,可以通过后台的全局配置来进行设置。以下是具体的步骤:步骤详解登录后台:使用管理员账号登录PBootCMS后台。进入全局配置:在后台菜单中找到并点击 全局配置。进入配置参数:在全局配置页面中找到并点击 配置参数。进入安全......
  • C# ASP.NET Core Web API 框架 实现向手机发送验证码短信
    本文章主要是在C#ASP.NETCoreWebAPI框架实现向手机发送验证码短信功能。这里我选择是一个互亿无线短信验证码平台,其实像阿里云,腾讯云上面也可以。首先我们先去互亿无线https://www.ihuyi.com/api/sms.html去注册一个账号注册完成账号后,它会送10条免费短信以及通话验证......
  • java窗口登录界面实现随机验证码
    创建窗口内容及验证码更换代码示例:packageframe;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjavax.swing.JButton;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.JTextField;publicclassJframeexte......
  • 阿里云虚拟主机的PbootCMS网站为什么不显示后台登录验证码(pbootcms后台登陆不显示验证
    在使用PBootCMS时,如果遇到后台登录验证码不显示的问题,通常与服务器配置或PHP设置有关。以下是具体原因分析和解决方法:原因分析输出缓冲区未开启PHP的输出缓冲区(OutputBuffering)未开启,导致某些动态内容(如验证码图片)无法正常输出。权限问题文件或目录权限设置不当,导致......
  • JSCH和SSHD实现密码+二次验证码登录服务器
    背景目前通过JSCH和SSHD登录服务器的方式基本都是密码或者密钥认证,但有些服务器在密码登录后会有个二次验证,一般是TOTP验证码。下面就是用xshell连接服务器后弹出的二次验证:JSCH和SSHD的官方文档没有详细的例子说明如何通过这个二次验证,研究文档的接口和参数后找到了结合密码和二次......
  • 生成一个验证码
    思路:验证码一般包括数字和字母。数字和字母之间可以用ASCLL值进行转换,所以数字的范围是6590或97122。publicstaticvoidmain(String[]args){for(inti=0;i<4;i++){intn=(int)(Math.random()(91-65))+65;charm=(char)n;System.out.print(m);}}运行结果:DEHV如果是生成......