如何创建java画布
创建Java画布的方法
在Java中创建画布通常涉及使用java.awt.Canvas或javax.swing.JPanel类,结合绘图方法实现。以下是两种常见方法:

使用java.awt.Canvas类
继承Canvas类并重写paint方法,适用于AWT框架:

import java.awt.Canvas;
import java.awt.Graphics;
import javax.swing.JFrame;
public class MyCanvas extends Canvas {
@Override
public void paint(Graphics g) {
g.drawOval(50, 50, 100, 100); // 示例:绘制圆形
}
public static void main(String[] args) {
JFrame frame = new JFrame("Canvas Demo");
MyCanvas canvas = new MyCanvas();
frame.add(canvas);
frame.setSize(300, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
使用javax.swing.JPanel类
继承JPanel并重写paintComponent方法,适用于Swing框架:
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.drawRect(50, 50, 200, 100); // 示例:绘制矩形
}
public static void main(String[] args) {
JFrame frame = new JFrame("Panel Demo");
frame.add(new MyPanel());
frame.setSize(400, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
关键注意事项
- 双缓冲:Swing组件默认支持双缓冲(减少闪烁),AWT需手动实现。
- 坐标系:左上角为原点(0,0),向右为x轴正方向,向下为y轴正方向。
- 重绘触发:调用
repaint()方法触发组件重绘,而非直接调用paint或paintComponent。
高级用法(自定义绘图)
通过Graphics2D实现更复杂绘图:
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
g2d.setStroke(new BasicStroke(3)); // 设置线条粗细
g2d.drawLine(0, 0, getWidth(), getHeight()); // 绘制对角线
}






