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.代 ...
随机推荐
- 云原生爱好者周刊 | 使用 WASM 来写博客是什么感觉?
开源项目推荐 zzhack zzhack 是一个静态博客框架,是一个纯正的 WASM 应用,它由 Rust & Yew 来作为技术栈进行搭建,UI 设计比较美观,大家也可以直接使用该项目的设计 ...
- C++刷题小知识点
数据结构定义 struct ListNode { int val; ListNode *next; ListNode() : val(0), next(nullptr) {} ListNode(int ...
- Paths和Files
Paths 类 Paths 类主要用于操作文件和目录路径.它提供了一些静态方法,用于创建java.nio.file.Path实例,代表文件系统中的路径. // 创建一个Path实例,表示当前目录下的一 ...
- 结构体(C语言)
目录 1. 结构体类型的声明 1.1 结构体回顾 1.1.1 结构的声明 1.1.2 结构体变量的创建和初始化 1.2 结构的特殊声明 1.3 结构的自引用 2. 结构体内存对齐 2.1 对齐规则 2 ...
- go高并发之路——本地缓存
一.使用场景 试想一个场景,有一个配置服务系统,里面存储着各种各样的配置,比如直播间的直播信息.点赞.签到.红包.带货等等.这些配置信息有两个特点: 1.并发量可能会特别特别大,试想一下,一个几十万人 ...
- 动态避障-图扑自动寻路 3D 可视化
自动寻路是机器人导航的核心技术,其原理主要涉及机器人与环境之间的复杂信息交互与处理.在自动寻路过程中,机器人依靠先进的传感器系统,如高清摄像头.精密激光雷达和灵敏超声波装置,全方位感知周围环境.这些传 ...
- 使用ssh 通过ProxyCommand:利用跳板机让不在同一局域网的机器ssh直连
打开~/.ssh/config文件,如果没有则新建一个 输入以下内容并保存: Host dxx.sxx-bastion # jumpserver name hostname 54.65.xx.2xx ...
- Python 抓取猫眼电影排行
import json import re import requests from requests.exceptions import RequestException import time # ...
- IIC通信协议详解 & PCF8591应用(Verilog实现)
该文章结合PCF8591 8-bit AD/DA 模数/数模转换器来详细介绍IIC通信协议,尽量做到条理清晰,通俗易懂.该文图片均从PCF8591手册中截取,一定程度上引导读者学习阅读data she ...
- python之pyexecjs
pyexecjs是一个用Python来执行JavaScript代码的工具库,该库支持多种JavaScript运行时环境,如Node.js.PhantomJS.SlimerJS等,允许开发者在Pytho ...