Java简单画图板完整代码加报告书

1. 概述

本文旨在向刚入行的小白开发者介绍如何实现一个简单的Java画图板,并提供完整的代码和报告书的编写方法。

2. 流程

下面是实现Java简单画图板的步骤:

步骤 描述
1 创建画图板窗口
2 添加画布
3 添加工具栏
4 实现绘图功能
5 实现保存和打开功能
6 编写报告书

3. 代码实现

3.1 创建画图板窗口

首先,需要创建一个Java窗口,作为画图板的界面。可以使用Swing或JavaFX来实现。以下是使用Swing创建窗口的代码:

import javax.swing.JFrame;

public class DrawingBoard extends JFrame {

   public DrawingBoard() {
      // 设置窗口的标题
      setTitle("简单画图板");
      
      // 设置窗口的大小
      setSize(800, 600);
      
      // 设置窗口的关闭操作
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      
      // 将画图板添加到窗口中
      add(new Canvas());
      
      // 显示窗口
      setVisible(true);
   }

   public static void main(String[] args) {
      new DrawingBoard();
   }
}

3.2 添加画布

在画图板窗口中,需要添加一个画布用于绘制图形。以下是Canvas类的代码:

import java.awt.Color;
import java.awt.Graphics;

import javax.swing.JPanel;

public class Canvas extends JPanel {

   @Override
   protected void paintComponent(Graphics g) {
      super.paintComponent(g);
      
      // 设置画布背景颜色
      setBackground(Color.WHITE);
      
      // 绘制图形
      g.setColor(Color.RED);
      g.fillRect(100, 100, 200, 200);
   }
}

3.3 添加工具栏

为了方便用户绘图,需要在画图板中添加一些工具栏,例如选择画笔颜色、选择画笔大小等。这里以选择画笔颜色为例。以下是添加画笔颜色选择工具栏的代码:

import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JColorChooser;
import javax.swing.JPanel;

public class Toolbar extends JPanel {

   private JButton colorButton;
   private Color selectedColor;

   public Toolbar() {
      // 创建颜色选择按钮
      colorButton = new JButton("选择颜色");
      
      // 处理按钮点击事件
      colorButton.addActionListener(new ActionListener() {
         @Override
         public void actionPerformed(ActionEvent e) {
            // 打开颜色选择器对话框
            selectedColor = JColorChooser.showDialog(Toolbar.this, "选择颜色", selectedColor);
         }
      });
      
      // 将按钮添加到工具栏中
      add(colorButton);
   }
}

3.4 实现绘图功能

为了实现绘图功能,我们需要在画布上监听鼠标事件,并在鼠标按下、移动和释放的过程中绘制图形。以下是Canvas类修改后的代码:

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Point;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.ArrayList;
import java.util.List;

import javax.swing.JPanel;

public class Canvas extends JPanel {

   private List<Point> points;
   private Color currentColor;

   public Canvas() {
      points = new ArrayList<>();
      currentColor = Color.RED;
      
      // 添加鼠标事件监听器
      addMouseListener(new MouseAdapter() {
         @Override
         public void mousePressed(MouseEvent e) {
            // 鼠标按下时记录坐标点
            points.add(e.getPoint());
         }
         
         @Override
         public void mouseReleased(MouseEvent e) {
            // 鼠标释放时绘制图形
            points.add(e.getPoint());
            repaint();
         }
      });
   }

   @Override
   protected void paintComponent(Graphics g) {
      super.paintComponent(g);
      
      // 设置画布背景颜色
      setBackground(Color.WHITE);
      
      // 设置画笔颜色
      g.setColor(currentColor);
      
      // 绘制图形
      for (int i = 0; i < points.size() - 1; i++) {
         Point p1 =