当前位置: 移动技术网 > IT编程>开发语言>Java > Swing图形界面实现可动态刷新的验证码

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

2019年07月22日  | 移动技术网IT编程  | 我要评论
本文实例为大家分享了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(); 
} 
} 

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

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网