Java如何创建图形
创建图形的基本方法
在Java中创建图形通常使用java.awt和javax.swing库。通过继承JPanel并重写paintComponent方法,可以在自定义面板上绘制图形。
import javax.swing.*;
import java.awt.*;
public class SimpleGraphics extends JPanel {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawRect(50, 50, 100, 100); // 绘制矩形
}
public static void main(String[] args) {
JFrame frame = new JFrame("简单图形");
frame.add(new SimpleGraphics());
frame.setSize(300, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
绘制常见图形
Java的Graphics类提供多种方法绘制基本图形,如线条、矩形、圆形等。使用Graphics2D可以增强绘制功能。

@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
// 绘制线条
g2d.drawLine(20, 20, 200, 20);
// 绘制填充矩形
g2d.setColor(Color.BLUE);
g2d.fillRect(50, 50, 100, 80);
// 绘制椭圆
g2d.setColor(Color.RED);
g2d.drawOval(50, 150, 100, 60);
}
自定义图形路径
对于复杂图形,可以使用GeneralPath类定义自定义路径。通过移动和绘制命令构建任意形状。

GeneralPath path = new GeneralPath();
path.moveTo(100, 100); // 起点
path.lineTo(200, 100); // 直线到
path.lineTo(150, 200); // 直线到
path.closePath(); // 闭合路径
g2d.draw(path);
图形变换与特效
Graphics2D支持各种变换操作,如旋转、缩放和平移。这些操作可以创建动态效果。
// 旋转45度绘制矩形
g2d.rotate(Math.toRadians(45), 150, 150);
g2d.setColor(Color.GREEN);
g2d.fillRect(100, 100, 100, 50);
g2d.rotate(-Math.toRadians(45), 150, 150); // 重置旋转
双缓冲技术
为避免闪烁,可以使用双缓冲技术。创建缓冲图像并在内存中绘制,最后一次性显示到屏幕。
Image buffer = createImage(getWidth(), getHeight());
Graphics bufferGraphics = buffer.getGraphics();
// 在bufferGraphics上绘制
bufferGraphics.setColor(Color.WHITE);
bufferGraphics.fillRect(0, 0, getWidth(), getHeight());
// 将缓冲图像绘制到实际图形上下文
g.drawImage(buffer, 0, 0, this);






