hhhhhhomework 验证码界面(非全部自己完成)
import javax.swing.*;//import 代表“引入”
//javax.swing 代表“路径” (在javax文件夹下的swing文件夹)
//* 代表“全部”
import java.awt.*; //
import java.awt.event.ActionEvent;//是JAVA AWT抽象窗口工具集包的一部分,用于处理用户执行的动作事件
import java.awt.event.ActionListener;//是否来判断点击登录后密码和账号是否正确
import java.util.Random;//随机数包 public class RandomGraphic {
private static final String characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";//初始化一个字符串
private static final int codeLength = 6;//代表长度为6的验证码
private static String currentVerificationCode;//记录正确的验证码 public static void main(String[] args) {
JFrame frame = new JFrame("随机验证码");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 200); JPanel panel = new JPanel(new GridLayout(4, 1));
frame.add(panel); JLabel codeLabel = new JLabel();
panel.add(codeLabel); JTextField inputField = new JTextField();
panel.add(inputField); JButton submitButton = new JButton("提交");
panel.add(submitButton); JLabel hintLabel = new JLabel("请输入验证码");
panel.add(hintLabel); generateAndSetVerificationCode(codeLabel); submitButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String userInput = inputField.getText().trim();
if (userInput.equals(currentVerificationCode)) {
JOptionPane.showMessageDialog(frame, "验证码正确!程序即将退出。");
System.exit(0);
} else {
JOptionPane.showMessageDialog(frame, "验证码错误,请重新输入!", "错误", JOptionPane.ERROR_MESSAGE);
generateAndSetVerificationCode(codeLabel);
}
inputField.setText("");
}
}); frame.setVisible(true);
} public static void generateAndSetVerificationCode(JLabel codeLabel) {
currentVerificationCode = generateVerificationCode(codeLength);
codeLabel.setText("验证码: " + currentVerificationCode);
} public static String generateVerificationCode(int length) {
Random random = new Random();
StringBuilder codeBuilder = new StringBuilder(); for (int i = 0; i < length; i++) {
int index = random.nextInt(characters.length());
char randomChar = characters.charAt(index);
codeBuilder.append(randomChar);
} return codeBuilder.toString();
}
}
hhhhhhomework 验证码界面(非全部自己完成)的更多相关文章
- iOS学习——输入验证码界面封装
在很多App中都有输入验证码的功能需求,最近项目需要也有这个功能.做完之后简单整理了一下,将实现的基本思路做下记录.实现后的效果大致如下图所示,当四位签到码全部输入时,提交按钮是可以提交的,否则提交按 ...
- jsp实现验证码
在web开发领域里面,验证码是一个比较常见的功能,而归根到底,验证码其实就是一组随机数,或者是一个随机算术 一.基本知识 1.为什么需要验证码? 验证码,很多时候出现在注册页面或者登陆界面,在这些页面 ...
- Qt之模式、非模式、半模式对话框
简述 关于"模式"和"非模式"对话框,相信大家都比较熟悉,但其中有一个可能很多人都比较陌生,介于两者之间的状态,我们称之为"半模式". 简述 ...
- iOS 生成本地验证码
在应用程序注册.登陆或者有关支付确认的界面,经常会用到验证码,验证码有的是通过手机发送获取的,有的是在本地点击获取的,通过手机发送获取的动态验证码可以使用第三方类库实现,本地点击获取的是在本地自己绘制 ...
- iOS本地动态验证码生成-b
用于ios本地动态生成验证码,效果如下: demo.gif 导入CoreGraphics.framework用于绘制图形 封装UIView,便捷使用,代码如下: AuthcodeView.h #imp ...
- Redhat Enterprise Linux 6.4图形界面的中文问题
一.界面中文,但Windows中的中文文件名上传到linux后乱码. .bashrc文件: export LANG=zh_CN.UTF-8 /etc/sysconfig/i18n文件: LANG=&q ...
- 『实践』Android之短信验证码(用的Mob短信验证)
1.参考资料 Mob网站:http://www.mob.com/ Mob在Github上的例子:https://github.com/MobClub/SMSSDK-for-Android 教程:htt ...
- 使用 Python+Selenium 破解滑块验证码
开发工具 Python版本:3.6.4 相关模块: pillow模块: selenium模块: numpy模块: 以及一些Python自带的模块. 其他: chromedriver 环境搭建 安装 ...
- Qt之模式、非模式对话框
关于“模式”和“非模式”对话框,相信大家都比较熟悉,但其中有一个可能很多人都比较陌生,介于两者之间的状态,我们称之为“半模式“. 模式对话框 描述 阻塞同一应用程序中其它可视窗口输入的对话框.模式对话 ...
- 详细讲解:tp3.2.3生成验证码并进行验证(ajax校验返回及自定义返回)
TP3.2.3的验证码也是比较经典的小功能,框架对这个小功能的封装还是比较完美的,废话不多说,开始记录 1.总体效果: (1)初始界面 (2)自定义的返回校验效果: (3)ajax的校验返回: 2.代 ...
随机推荐
- Machine Learning Week_1 Introduction 5-8
目录 1.5 Vedio: Supervised Learning unfamiliar words 1.6 Reading: Supervised Learning unfamiliar words ...
- 10个一行Python代码:利用sort()函数进行高效排序
今天我们要玩点有趣的--用一行代码来展示sort()函数的超级能力!通常,排序算法可能让你觉得是编程中的"重量级选手",但有了Python的sort(),一切都变得轻而易举,甚至可 ...
- Rest-Assured 学习笔记
Rest-Assured 学习笔记 body { font-family: Arial, sans-serif } .container { } h1, h2, h3 { color: rgba(51 ...
- 看图认识HTML5
教程: https://www.w3.org/TR/html52 https://www.w3cschool.cn/html5/ https://www.runoob.com/html/html5-i ...
- Linux系统压力测试工具(命令行工具)
Linux的命令行压力测试工具在做基准测试时很有用,通过基准测试对了解一个系统所能达到的最大性能指标,这些指标可以作为后续性能比较.优化评估的参考依据. 模拟CPU压力: 可以使用stress命令使C ...
- HAL+CubeIDE,STM32F407ZGT6正点原子探索者,舵机驱动,从零开始
CubeIDE_HAL库_从零开始玩舵机 1.材料准备 开发板:正点原子STM32F407ZGT6探索者 舵机:SG90 舵机线材分辨:褐色 / 红色 / 橘黄色 -- GND / VCC / PWM ...
- 使用flask进行Mock Server模拟接口操作及问题解决
1.flask介绍 flask是一个轻量级的python web 微框架 2.Mock Server介绍 Mock Server是一个开源的模拟服务器,它可以定义和记录API交互,支持各种http方法 ...
- .NET9 - 新功能体验(二)
书接上回,我们继续来聊聊.NET9和C#13带来的新变化. 01.新的泛型约束 allows ref struct 这是在 C# 13 中,引入的一项新的泛型约束功能,允许对泛型类型参数应用 ref ...
- sqli注入之sqlmap
善于使用google hacking的搜索语法不失为一种有效的挖洞方法. 利用google浏览器inurl搜索语法寻找可能sql注入的php网站url inrul:productInfo.php?id ...
- rust 终端输出 debug 信息
配置方法 将 env_logger log 添加到 Cargo.toml : 打开 Cargo.toml 文件并在 [dependencies] 部分下添加 env_logger log . [pac ...