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");
final Panel panel = new MyPanel();
frame.add(panel);
frame.setSize(200, 100);
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);
}
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);
}
}
- 效果图: