Swing图形界面实现可动态刷新的验证码
本文实例为大家分享了Swing实现可动态刷新的验证码的具体代码,供大家参考,具体内容如下
不多,code代码如下:
importjava.awt.Color;
importjava.awt.Font;
importjava.awt.Graphics;
importjava.awt.Toolkit;
importjava.awt.event.MouseAdapter;
importjava.awt.event.MouseEvent;
importjava.util.Random;
importjavax.swing.JFrame;
publicclassCheckCodeextendsJFrame{
privatestaticRandomrandom=newRandom();
privateintwidth=53;//验证码宽度
privateintheight=25;//验证码高度
privateintfont_size=20;//验证码颜色
privateintx=100;//验证码所在窗体X坐标
privateinty=100;//验证码所在窗体Y坐标
privateintjam=5;//干扰元素建议使用4~7之间的数字
privateStringcode="";//保存验证码
publicCheckCode(){//初始化窗体信息
super("验证码");
setVisible(true);
setBounds((Toolkit.getDefaultToolkit().getScreenSize().width-300)/2,(Toolkit.getDefaultToolkit().getScreenSize().height-300)/2,300,200);
setDefaultCloseOperation(EXIT_ON_CLOSE);
addMouseListener(newMouseAdapter(){
publicvoidmouseClicked(MouseEvente){
repaint();
}
});
}
publicColorgetRandomColor(){//获得随机颜色
intR=random.nextInt(255),G=random.nextInt(255),B=random.nextInt(255);
returnnewColor(R,G,B);
}
publicStringgetRandomString(){//获得验证码
intnum=random.nextInt(9);
code=num+"";
returnnum+"";
}
publicvoidcheckCode(Graphicsg){//绘画验证码
drawBorder(g);
drawCode(g);
drawJam(g);
}
publicvoiddrawBorder(Graphicsg){//绘画边框和背景
Colorgc=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);
}
publicvoiddrawCode(Graphicsg){//绘画验证码内容
Colorgc=g.getColor();
for(inti=0;i<4;i++){
g.setColor(getRandomColor());
g.setFont(newFont("宋体",Font.BOLD,font_size));
g.drawString(getRandomString(),x+5+(i*12),y+font_size);
}
g.setColor(gc);
}
publicvoiddrawJam(Graphicsg){//绘画干扰元素
Colorgc=g.getColor();
for(inti=0;i
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。