欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Swing图形界面实现可动态刷新的验证码

程序员文章站 2024-02-20 17:51:58
本文实例为大家分享了swing实现可动态刷新的验证码的具体代码,供大家参考,具体内容如下 不多,code代码如下: import java.awt.colo...

本文实例为大家分享了swing实现可动态刷新的验证码的具体代码,供大家参考,具体内容如下

不多,code代码如下:

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 = 5;//干扰元素 建议使用 4~7 之间的数字 
private string code = "";//保存验证码 
 
public checkcode(){//初始化窗体信息 
super("验证码"); 
setvisible(true); 
setbounds((toolkit.getdefaulttoolkit().getscreensize().width-300)/2, (toolkit.getdefaulttoolkit().getscreensize().height-300)/2, 300, 200); 
setdefaultcloseoperation(exit_on_close); 
addmouselistener(new mouseadapter() { 
public void mouseclicked(mouseevent e) { 
repaint(); 
} 
}); 
} 
 
public color getrandomcolor(){//获得随机颜色 
int r=random.nextint(255),g=random.nextint(255),b=random.nextint(255); 
return new color(r,g,b); 
} 
 
public string getrandomstring(){//获得验证码 
int num = random.nextint(9); 
code = num+""; 
return num+""; 
} 
 
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<jam;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) { 
new checkcode(); 
} 
} 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。