AWT绘图
Java中提供了一个Graphics类,这个类相当于一个抽象的画笔,在类中提供了很多的绘制图形的方法。
Graphics常用方法
方法名 | 作用 | |
---|---|---|
setColor() | 指定上下文颜色,接收Color类型的参数 | |
setFont() | 指定上下文字体,接收Font类型参数 | |
drawRect() | 绘制矩形 | |
drawOval() | 绘制椭圆形 | |
fillRect()方法和fillOval()方法 | 用当前颜色填充绘制完成的矩形和椭圆形 | |
drawString() | 绘制一段文本 |
在Panpel面板上绘制一张图片验证码
package AWT;
import java.awt.*;
import java.util.Random;
public class YanZhengMa {
public static void main(String[] args) {
final Frame frame=new Frame("验证码");
final Panel panel=new MyPanel();
frame.add(panel);
frame.setSize(200,100);
frame.setVisible(true);
}
}
class MyPanel extends Panel{
public void paint(Graphics g){
//定义验证码图片的高度
int width=320;
//定义验证码图片的宽度
int height=180;
//设置上下文颜色
g.setColor(Color.LIGHT_GRAY);
//填充验证码背景
g.fillRect(0,0,width,height);
//设置上下文颜色
g.setColor(Color.BLACK);
//绘制边框
g.drawRect(0,0,width-1,height-1);
Random r=new Random();
for(int i=0;i<100;i++){
int x=r.nextInt(width)-2;
int y=r.nextInt(height)-2;
g.drawOval(x,y,2,2);
}
g.setFont(new Font("黑体",Font.BOLD,30));
g.setColor(Color.BLUE);
//生成随机数
char[] chars=("0123456789abcdefghijkmnopqrstuvwxyzABCDEFG"+"HIJKLMNPQRSTUVWXYZ").toCharArray();
StringBuilder sb=new StringBuilder();
for(int i=0;i<4;i++){
int pos=r.nextInt(chars.length);
char c=chars[pos];
sb.append(c+" ");
}
//写入验证码
g.drawString(sb.toString(),20,30);
}
}
结果
用drawOval()方法在矩形中随机生成100个椭圆,作为验证码的干扰点,然后生成随机验证码,从chars字符数组中取出四个字符组成字符串,调用Graphics的drawString()方法将字符串绘制在矩形区域内。在主函数中,将对象panel添加到frame窗口中,窗口显示时,显示出在panel面板中绘制图形验证码。
⛵小结
以上就是我对于AWT生成动态验证码的详细分析,学会如何设置动态验证码将会提高我们信息的安全性,避免一些不必要的麻烦!
如果这篇【文章】有帮助到你,希望可以点个赞👍,创作不易,如果有对【Java基础】【后端技术】、【数据结构】【Linux操作系统】感兴趣的小可爱,也欢迎关注 【LNORA】,对【算法设计与分析】感兴趣的可以免费订阅【算法设计与分析】的专栏,如果我的文章有帮助到你,麻烦来个一键三连奥,这将是对我莫大的鼓励,我将为大家带来更加优质的文章!我们可以一起进步,每天进步一点点,我将会给你带来巨大的【收获与惊喜】💝💝!