验证码 java 数字_JAVA生成4位纯数字验证码

该博客展示了如何使用JAVA编程生成一个4位纯数字的验证码。代码中定义了一个CheckCode类,包含了生成随机颜色、随机字符串、绘制验证码、干扰元素等功能,并在主函数中创建了展示验证码的窗口。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JAVA生成4位纯数字验证码源代码

package test;

import java.awt.Color;

import java.awt.Font;

import java.awt.Graphics;

import java.awt.Toolkit;

import java.awt.event.MouseAdapter;

import java.awt.event.MouseEvent;

import java.util.Random;

import javax.swing.JFrame;

public class CheckCode extends JFrame {

private static Random random = new Random();

private int width = 53; //验证码宽度

private int height =25; //验证码高度

private int font_size = 20; //验证码颜色

private int x = 100; //验证码所在窗体X坐标

private int y = 100; //验证码所在窗体Y坐标

private int jam = 4; //干扰元素 建议使用 4~7 之间的数字

private String code = ""; //保存验证码

/**

* 初始化窗体信息

*/

public CheckCode(){

super("test");

setVisible(true);

setBounds((Toolkit.getDefaultToolkit().getScreenSize().width-300)/2, (Toolkit.getDefaultToolkit().getScreenSize().height-300)/2, 300, 200);

setDefaultCloseOperation(EXIT_ON_CLOSE);

addMouseListener(new MouseAdapter() {

@Override

public void mouseClicked(MouseEvent e) {

repaint();

}

});

}

/**

* 获得随机颜色

* @return 随即颜色

*/

public Color getRandomColor(){

int R=random.nextInt(255),G=random.nextInt(255),B=random.nextInt(255);

return new Color(R,G,B);

}

/**

* 获得验证码

* @return 验证码

*/

public String getRandomString(){

int num = random.nextInt(9);

code = num+"";

return num+"";

}

/**

* 绘画验证码

* @param g

*/

public void checkCode(Graphics g){

drawBorder(g);

drawCode(g);

drawJam(g);

}

/**

* 绘画边框和背景

*/

public void drawBorder(Graphics g){

Color gc = g.getColor();

g.setColor(Color.WHITE);

g.fillRect(x, y, width, height);

g.setColor(Color.BLACK);

g.drawRect(x, y, width, height);

g.setColor(gc);

}

/**

* 绘画验证码内容

*/

public void drawCode(Graphics g){

Color gc = g.getColor();

for(int i=0;i<4;i++){

g.setColor(getRandomColor());

g.setFont(new Font("宋体",Font.BOLD,font_size));

g.drawString(getRandomString(), x+5+(i*12), y+font_size);

}

g.setColor(gc);

}

/**

* 绘画干扰元素

*/

public void drawJam(Graphics g){

Color gc = g.getColor();

for(int i=0;i

g.setColor(getRandomColor());

g.drawLine(x+random.nextInt(width), y+random.nextInt(height), x+random.nextInt(width), y+random.nextInt(height));

}

g.setColor(gc);

}

public void paint(Graphics g) {

Color c = g.getColor();

g.drawString("看不清?单机窗体更换验证码", 30, 50);

checkCode(g);

g.setColor(c);

}

public static void main(String[] args) {

ew Test02();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值