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.代 ...
随机推荐
- while循环和do循环、缓冲区、一维数组
缓冲区 输入缓冲区 从键盘得到数据的时候用户输入的数据首先进入输入缓冲区,然后程序从输入缓冲区里获得数字,先进入输入缓冲区的数据必须先处理(类似排队),如果先进入输入缓冲区的数据无法处理,程序就得不到 ...
- 【2024】所有人都能看懂的 Win 11 安装/重装教程,跟着我一遍包成功
无论你因为系统坏掉想重装一下 Windows,或者只是想升级一下 Windows 都可以.虽然标题写的是 Win 11,不过实际上对于任何 Windows 系统都适用,不过现在 Win 11 已经相当 ...
- LiveData
ViewModel 添加依赖 implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0' activity_main.xml < ...
- markdown表格插入linux变量
一.背景 看标题不难发现这是一个很"小众"的话题,其实本篇是对之前做的单元测试钉钉告警(此篇:https://www.cnblogs.com/ailiailan/p/1322203 ...
- Go语言编写单元测试用例
Go单元测试示例 example/ |--division.go |--division_test.go 为什么被测试文件和测试文件通常放到同一个文件夹下以及同一个声明包里 通常情况下,我们把被测试的 ...
- Flink Checkpoint & Savepoint
Flink checkpoint Checkpoint是Flink实现容错机制最核心的功能,能够根据配置周期性地基于Stream中各个Operator的状态来生成Snapshot,从而将这些状态数据定 ...
- 3.7 Linux切换目录(cd命令)
cd 命令,是 Change Directory 的缩写,用来切换工作目录. Linux 命令按照来源方式,可分为两种,分别是 Shell 内置命令和外部命令.所谓 Shell 内置命令,就是 She ...
- Python计算1到100偶数的加和
sum_value = 0 for i in range(1,101): if i % 2 == 1: continue sum_value += i print(sum_value) print(s ...
- Linux系统部署Jmeter环境
1.Linu安装Java环境 Jmeter是Java开发的,需要依赖JDK环境,因此我们需提前安装好JDK,安装地址:https://www.oracle.com/technetwork/java/j ...
- 返璞归真!使用 alpinejs 开发交互式 web 应用,抛弃 node_modules 和 webpack 吧!
前言 最近一直在使用 DjangoStarter 开发各种小项目,之前我是比较喜欢前后端分离的,后端用 Ninja API,前端 nextjs,开发起来也挺舒服的,交互体验也比较好. 不过我在网上冲浪 ...