java随机生成四位字符验证码(使用Graphics绘图类)
来源:互联网 发布:linux 更新grub命令 编辑:程序博客网 时间:2024/05/17 07:37
/*使用绘图类Graphics实现随机生成四位验证码,随机颜色,随机字体*/
package com.itany.graphic;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.util.Random;
/*
* 随机数
*/
public class ValidateCode {
//随机字符
privatestatic StringBuilder sb =new StringBuilder();
//随机类
privatestatic Random random =new Random();
//范围参数
//字体
privatestatic String[] fontName={"幼圆","微软雅黑","新宋体","方正姚体","方正舒体","楷体","隶书","黑体"};
//样式
privatestaticint[] fontStyle={Font.BOLD,Font.ITALIC,Font.ROMAN_BASELINE};
//大小
privatestaticint[] fontSize={26,28,30,32,34,36};
//字符库
privatestatic String chs="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
publicstaticvoid init(Graphics g){
//画矩形
g.setColor(Color.LIGHT_GRAY);
g.fill3DRect(5,5,130,50,false);
//随机四个数
randomNum(g);
//画干扰线
randomLine(g);
}
//画干扰线
privatestaticvoid randomLine(Graphics g) {
for(int i=0;i<4;i++){
g.setColor(randomColor());
g.drawLine(random.nextInt(131)+5, random.nextInt(51)+5, random.nextInt(131)+5, random.nextInt(51)+5);
}
}
/*
* 随机色
*/
privatestatic Color randomColor() {
returnnew Color(random.nextInt(256), random.nextInt(256), random.nextInt(256));
}
/*
* 随机数
*/
privatestaticvoid randomNum(Graphics g) {
String numStr = null;
for(int i=0;i<4;i++){
numStr = randomChar();
sb.append(numStr);
g.setColor(randomColor());
g.setFont(randomFont());
g.drawString(numStr, 30+i*20,40);
}
}
/*
* 随机码
*/
publicstatic String getCode(){
return sb.toString();
}
/*
* 随机字体
*/
privatestatic Font randomFont() {
int size = fontSize[random.nextInt(fontSize.length)];
int style =fontStyle[random.nextInt(fontStyle.length)] ;
String name=fontName[random.nextInt(fontName.length)];
Font f = new Font(name,style,size);
return f;
}
/*
*随机字符串
*/
privatestatic String randomChar() {
return chs.charAt(random.nextInt(chs.length()))+"";
}
}
调用方法如下:
JPanel pan = new JPanel(){
protected void paintComponent(Graphics g){
ValidateCode.init(g);//调用类方法初始化验证码
System.out.printIn(ValidateCode.getCode().toUpperCase());
}
}
- java随机生成四位字符验证码(使用Graphics绘图类)
- 使用JAVA生成四位随机验证码图片
- java 不完整的四位随机生成验证码
- Java随机产生四位验证码
- Java 生成6位随机验证码
- 生成x位随机数字密码、验证码、字符密码
- 验证码制作之一:随机生成一个四位数字
- java 生成四位验证码
- java 生成四位验证码
- 使用java代码生成随机验证码
- 使用java随机生成验证码
- [Java]生成32位随机字符ID
- [Java]生成32位随机字符ID
- 生成验证码,并进行验证(四位随机数字)
- ASP随机四位数字验证码
- 使用java绘图类Graphics绘制圆圈
- java随机生成4位短信验证码工具类分享
- Java的随机验证码生成类
- iOS10推送必看UNNotificationServiceExtension
- TCP/IP协议分层
- SharedPreferences使用讲解
- 升序降序
- Java中String转MD5
- java随机生成四位字符验证码(使用Graphics绘图类)
- winform中自定义的窗体移动代码
- 深入理解Java虚拟机 读书笔记
- Mysql优化
- Javascript 多浏览器兼容性问题及解决方案
- C/C++——指针做参数
- Iterator、ListIterator、foreach、Enumeration
- C语言--结构体内存计算规则
- logback使用