java如何 创建画布
创建画布的方法
在Java中创建画布通常涉及使用java.awt.Canvas类或javax.swing.JPanel类。以下是两种常见的实现方式:
使用AWT的Canvas类
import java.awt.Canvas;
import java.awt.Frame;
import java.awt.Graphics;
public class MyCanvas extends Canvas {
@Override
public void paint(Graphics g) {
g.drawString("Hello, Canvas!", 50, 50);
}
public static void main(String[] args) {
Frame frame = new Frame("Canvas Example");
Canvas canvas = new MyCanvas();
canvas.setSize(300, 200);
frame.add(canvas);
frame.pack();
frame.setVisible(true);
}
}
使用Swing的JPanel类
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.Graphics;
public class MyPanel extends JPanel {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawString("Hello, JPanel!", 50, 50);
}
public static void main(String[] args) {
JFrame frame = new JFrame("JPanel Example");
JPanel panel = new MyPanel();
panel.setSize(300, 200);
frame.add(panel);
frame.pack();
frame.setVisible(true);
}
}
画布的基本设置
设置画布的背景颜色和大小是常见的需求:

canvas.setBackground(Color.WHITE);
canvas.setPreferredSize(new Dimension(400, 300));
在画布上绘制图形
使用Graphics对象可以在画布上绘制各种图形:

@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.RED);
g.fillRect(100, 100, 50, 50);
g.setColor(Color.BLUE);
g.drawOval(200, 200, 50, 50);
}
处理用户交互
为画布添加鼠标监听器可以实现交互功能:
canvas.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
System.out.println("Mouse clicked at: " + e.getX() + ", " + e.getY());
}
});
双缓冲技术
为避免闪烁,可以使用双缓冲技术:
public class DoubleBufferedCanvas extends Canvas {
private Image buffer;
private Graphics bufferGraphics;
@Override
public void update(Graphics g) {
if (buffer == null) {
buffer = createImage(getWidth(), getHeight());
bufferGraphics = buffer.getGraphics();
}
paint(bufferGraphics);
g.drawImage(buffer, 0, 0, this);
}
}






