java canvas 如何使用
使用 Java Canvas 的基本方法
Java 中的 Canvas 类是一个空白矩形区域,用于绘制图形或捕获用户输入事件。通常与 Graphics 类结合使用。
创建 Canvas 的步骤如下:
Canvas canvas = new Canvas();
canvas.setSize(400, 300); // 设置画布大小
绘制图形的方法
在 Canvas 上绘制图形需要重写 paint 方法:

canvas.addPaintListener(new PaintListener() {
@Override
public void paintControl(PaintEvent e) {
GC gc = e.gc; // 获取图形上下文
gc.setForeground(display.getSystemColor(SWT.COLOR_RED));
gc.drawRectangle(50, 50, 100, 100); // 绘制矩形
}
});
处理用户输入
Canvas 可以监听鼠标和键盘事件:
canvas.addMouseListener(new MouseAdapter() {
@Override
public void mouseDown(MouseEvent e) {
System.out.println("Mouse clicked at: " + e.x + ", " + e.y);
}
});
双缓冲技术
避免闪烁可以使用双缓冲:

Image buffer = new Image(display, width, height);
GC bufferGC = new GC(buffer);
// 在缓冲区绘制
bufferGC.setBackground(display.getSystemColor(SWT.COLOR_WHITE));
bufferGC.fillRectangle(0, 0, width, height);
// 将缓冲区内容绘制到屏幕
gc.drawImage(buffer, 0, 0);
清除画布内容
清除画布内容可以绘制一个覆盖整个区域的矩形:
gc.setBackground(display.getSystemColor(SWT.COLOR_WHITE));
gc.fillRectangle(0, 0, canvas.getSize().x, canvas.getSize().y);
使用 SWT 图形系统
如果使用 SWT 图形系统,需要先创建 Display 和 Shell:
Display display = new Display();
Shell shell = new Shell(display);
Canvas canvas = new Canvas(shell, SWT.NONE);
动画实现
实现简单动画可以使用定时器:
display.timerExec(100, new Runnable() {
int x = 0;
@Override
public void run() {
x += 5;
canvas.redraw(); // 重绘画布
display.timerExec(100, this);
}
});






