java 中swing动态刷新_Swing图形界面实现可动态刷新的验证码

本文通过一个实例展示了如何使用Java Swing创建一个可以动态刷新的验证码。代码中定义了一个`CheckCode`类,该类继承自`JFrame`,包含生成随机颜色、随机字符串、绘制边框、干扰线及验证码内容的方法。当鼠标点击窗体时,验证码会自动刷新。
摘要由CSDN通过智能技术生成

本文实例为大家分享了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

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();

}

}

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值