Java AWT 绘图

目录


AWT 绘图

  • 很多 GUI 程序都需要在组件上绘制图形,例如实现一个五子棋的小游戏,就需要在组件上绘制棋盘和棋子。在 java.awt 包中专门提供了 Graphics 类,它相当于一个抽象的画笔,其中提供了各种绘制图形的方法,使用 Graphics 类的方法就可以在组件上绘制图形;
  • java.awt.Graphics,详见:Class Graphics
  • 使用 Graphics 类在组件中绘图:
import java.awt.*;
import java.util.Random;

public class Test {
    public static void main(String[] args) {
        final Frame frame = new Frame("Regino"); // 创建Frame对象
        final Panel panel = new MyPanel(); // 创建Panel对象
        frame.add(panel);
        frame.setSize(200, 100);
        // 将Frame窗口居中
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
    }
}

class MyPanel extends Panel {
    public void paint(Graphics g) {
        int width = 160; // 定义验证码图片的宽度
        int height = 40; // 定义验证码图片的高度
        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);//绘制椭圆的边框,它刚好能放x,y,width,height,宽度为width+1,高度为height+1
        }
        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); // 写入验证码
    }
}
  • 效果图:
    1
发布了242 篇原创文章 · 获赞 244 · 访问量 9582

猜你喜欢

转载自blog.csdn.net/Regino/article/details/104744496
AWT