1. 项目概述
最近在整理Java基础知识时,突然想实现一个简单的画图程序。这个需求看似基础,但涉及到的知识点却非常全面,从GUI编程到事件处理,再到图形绘制,正好可以系统性地复习Java的核心能力。下面我就把实现过程完整记录下来,希望能帮助到正在学习Java图形编程的朋友们。
这个画图程序主要实现以下功能:
- 基本图形绘制(直线、矩形、圆形)
- 自由画笔功能
- 颜色选择
- 图形清除
- 简单的撤销操作
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 技术选型与准备
2.1 Java图形技术对比
Java中实现图形界面主要有以下几种方案:
- AWT:最基础的GUI工具包,但功能有限
- Swing:基于AWT的改进版,组件更丰富
- JavaFX:新一代图形界面技术,但学习成本较高
- 第三方库:如Processing等
考虑到我们的需求是简单的画图功能,Swing已经足够满足需求,而且它是Java标准库的一部分,无需额外安装依赖。
2.2 开发环境准备
推荐使用以下环境:
- JDK 17(长期支持版本)
- IntelliJ IDEA(社区版即可)
- 或者Eclipse
注意:确保环境变量配置正确,可以通过
java -version命令验证
3. 核心实现步骤
3.1 创建主窗口框架
java复制import javax.swing.*;
import java.awt.*;
public class DrawingApp {
public static void main(String[] args) {
JFrame frame = new JFrame("简易画图程序");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(800, 600);
frame.setLocationRelativeTo(null); // 居中显示
// 后续组件将添加在这里
frame.setVisible(true);
}
}
3.2 添加绘图面板
java复制class DrawingPanel extends JPanel {
private ArrayList<Shape> shapes = new ArrayList<>();
private Color currentColor = Color.BLACK;
private Shape currentShape = null;
private int startX, startY;
public DrawingPanel() {
// 设置鼠标监听器
this.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
startX = e.getX();
startY = e.getY();
currentShape = new Shape(currentShapeType, currentColor);
}
public void mouseReleased(MouseEvent e) {
