首页 > 其他分享 >9月25日记录

9月25日记录

时间:2024-09-25 18:23:45浏览次数:10  
标签:25 captchaLabel String 记录 BufferedImage 验证码 g2d new

今天使用java语言简单设计了一个有图形化窗口的验证码生成器,使用到了swing作为图形化窗口界面,BufferedImage生成验证码图片,ActionEvent与ActionListener生成监听器执行按钮功能,使用Random生成随机数;
源代码如下:
import javax.swing.;
import java.awt.
;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.util.Random;
public class CaptchaGenerator extends JFrame {
private static final long serialVersionUID = 1L;
private JLabel captchaLabel;
private JButton generateButton;
public CaptchaGenerator() {
setTitle("验证码生成器");
setSize(300, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setLayout(new FlowLayout());
captchaLabel = new JLabel();
captchaLabel.setFont(new Font("Arial", Font.BOLD, 24));
captchaLabel.setPreferredSize(new Dimension(200, 60));
add(captchaLabel);
generateButton = new JButton("生成验证码");
generateButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String captchaText = generateCaptcha(4);
BufferedImage captchaImage = createCaptchaImage(captchaText);
captchaLabel.setIcon(new ImageIcon(captchaImage));
}
});
add(generateButton);
}
private String generateCaptcha(int length) {
String chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
StringBuilder captcha = new StringBuilder();
Random random = new Random();
for (int i = 0; i < length; i++) {
int index = random.nextInt(chars.length());
captcha.append(chars.charAt(index));
}
return captcha.toString();
}
private BufferedImage createCaptchaImage(String captchaText) {
BufferedImage image = new BufferedImage(200, 60, BufferedImage.TYPE_INT_RGB);
Graphics2D g2d = image.createGraphics();
g2d.setColor(Color.WHITE);
g2d.fillRect(0, 0, 200, 60);
g2d.setColor(Color.BLACK);
g2d.setFont(new Font("Arial", Font.BOLD, 40));
g2d.drawString(captchaText, 10, 40);
g2d.dispose();
return image;
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
CaptchaGenerator generator = new CaptchaGenerator();
generator.setVisible(true);
}
});
}
}
代码首先使用JFrame创建一个窗口,并使用Dimension函数设置长宽;
再使用JButton创建一个按钮,按钮功能为生成验证码;
创建generateCaptcha方法,作用为生成四位验证码,并且验证码内容为26个字母大小写以及1至9的阿拉伯数字,返回值为String类型的四位验证码;
使用JLabel将生成的验证码显示在界面内,创建createCaptchaImage方法,作用为生成有验证码的图像,使用setColor设置背景为白色字体为黑色,返回值为BufferedImage类型的对象;

标签:25,captchaLabel,String,记录,BufferedImage,验证码,g2d,new
From: https://www.cnblogs.com/pygmy-killer-whale/p/18431933

相关文章

  • repo 简单搭建学习记录
    repo简单搭建学习记录文章目录repo简单搭建学习记录一、repo搭建1、服务端2、客户端二、repo更多细节三、reposync如何指定manifest仓库版本四、manifest仓库如何指定子仓库版本一、repo搭建参考:repo仓库搭建教程【CSDN】gitrepo工具详细使用教程【C......
  • 2024-09-25:用go语言,给定一个长度为 n 的整数数组 nums 和一个正整数 k, 定义数组的“能
    2024-09-25:用go语言,给定一个长度为n的整数数组nums和一个正整数k,定义数组的"能量"为所有和为k的子序列的数量之和。请计算nums数组中所有子序列的能量和,并对结果取模10^9+7后返回。输入:nums=[1,2,3],k=3。输出:6。解释:总共有5个能量不为0的子序列:子......
  • 三星flash记录
    1.刷目标包之前,先刷本机对应的官方最新包1.0退出谷歌账号、三星账号1.1使用固件下载器下载本机最新的官方包:输入koo、SM-N976N、IMEI码,获取并下载1.2进入ODIN模式:关机->按住音量+和音量-->typec连接电脑->根据提示,按一下音量+,就进入odin模式了1.3电脑打开ODIN,分别选......
  • 9.25学习日志
    一.Python变量1.变量命名(上期已记录)2.变量类型变量是没有类型的,这里所说的变量类型指的是变量所指的内存中对象的类型。在Python中,type()函数用于返回对象的类型。当你使用type(object)时,它会返回该对象的类型,并以<class'typename'>的形式表示。一个变量的typena......
  • Excel转dbc过程中出现的问题记录
    受限于python版本,无法使用canmatrix等库于是采用excel转字符串,输出到.dbc文档的方式实现DBC信息内容参见 DBC系列之DBC格式与属性说明[1]-CSDN博客遇到的问题:1、报文的DLC范围被限制为0~8,超限的报文数据都会报错解决办法:以文本文档方式打开dbc文档,添加关键字段BA_DEF_......
  • 阿里云ECS无法使用25端口发送短信解决方法
    phpmailer发邮件提示SMTP->ERROR:Failedtoconnecttoserver的解决方法写的网站本地测试发送短信成功,但是部署到阿里云ECS服务器上发送短信失败。打开cmd测试下telnetsmtp.163.com25 失败telnetsmtp.163.com465成功则解决方法如下配置的时候设置端口465,并加密SSL$mailer->......
  • 要实现在Vue 2中点击按钮后在新浏览器标签页中预览PDF文件 ,pdf文件默认放大125% 禁止P
    要在Vue2中实现点击按钮后在新浏览器标签页中预览PDF文件,并设置PDF文件默认放大125%以及禁止PDF的工具栏下载功能,你可以使用window.open方法,并在其中设置合适的URL参数来控制PDF查看器的行为。以下是一个实现的示例:创建Vue组件:在Vue组件中,添加一个按钮用于触发PDF预览......
  • 【2024潇湘夜雨】WIN 11_IoT_Ent_LTSC_2024_24H2.26100.1876软件选装纯净特别版9.25
    【系统简介】=============================================================1.本次更新母盘来自WIN11_IoT_Ent_LTSC_2024_24H2.26100.1876.2.全程离线精简、无人值守调用优化处理制作。部分优化适配系统可能要重启几次,即使显示适配失败也不要在意,可能部分优化不适用。3.OS版本号......
  • 2024年 Java 面试八股文(25w字)
    Java有哪些数据类型?Java语言的数据类型分为两种:基本数据类型和引用数据类型。1.基本数据类型包括boolean(布尔型)、float(单精度浮点型)、char(字符型)、byte(字节型)、short(短整型)、int(整型)、long(长整型)和double(双精度浮点型)共8种,如下表所示。基本类型位数字节默认值int3240......
  • 9.25 总结
    T1变换一道DP题,用\(f_{i,j,0/1}\)来表示到了第\(i\)个数,总共修改了\(j\)次,前面的数是/不是山谷点,做DP即可T2交替根据超大眼观察法,我们可以发现,当剩余数组大小为偶数的时候,呈现一个组合数的形式,于是使用公式\(C_{m}^{n}=\dfrac{m!}{n!(m-n)!}\)配合逆元求出组合......