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以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。