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 =