我有一个类似于油漆的程序.并且我正在尝试实现更改笔颜色,但是当我更改颜色时,当前绘制的所有内容都更改为颜色RED,例如在我的程序中,如何使其不会重绘当前绘制到当前所有内容的所有内容改变颜色?下面的代码将编译并运行
JPanel绘图区域的类
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.ArrayList;
import javax.swing.BorderFactory;
import javax.swing.JPanel;
//refer to http://jkost.ergoway.gr/jnkjavaconnection/freedraw.html for the algorithm.
public class STDrawingArea extends JPanel {
/**
*
*/
private static final long serialVersionUID = 1L;
ArrayList<Rectangle> dPoint = new ArrayList<Rectangle>();
Point point = new Point(-1,-1);
private Color currentColor;
public STDrawingArea()
{
setBorder(BorderFactory.createLineBorder(Color.black));
setBackground(Color.WHITE);
addMouseMotionListener(new MouseAdapter() {
public void mouseDragged(MouseEvent e)
{
dPoint.add(new Rectangle(point.x,point.y,e.getX(),e.getY()));
point.x = e.getX();
point.y = e.getY();
repaint();
} …Run Code Online (Sandbox Code Playgroud) 我有一个关于随机城市交通网络模拟的Java项目,我已经设法找到了实现这个项目的方法,所以我将每个交叉点划分为一个基本上是扩展JPanel类(名为Carrefour)的部分.一切都运转良好,直到我遇到如何画车并让它们通过道路.
所以我的问题是如何在另一幅图像(道路)上绘制图像(车辆图像)?