我目前正在使用Java进行绘画,并且遇到了重绘()删除之前绘制的形状的问题。以下是我的问题的一个例子:
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.LIGHT_GRAY);
click.paintPiece(g);
}
public void paintPiece(Graphics g) {
int x = (getMouseX())*70 + 10;
int y = mover.getRow()*70 + 10;
g.fillOval(x, y, 50, 50);
}
每次单击鼠标时,都会在paintComponent()方法中调用paintPiece()方法。我遇到的问题是,在创建新椭圆时,先前绘制的椭圆会被删除。还需要注意的是,每次点击鼠标我都会重新绘制窗口。如何在不擦除之前绘制的椭圆的情况下绘制新的椭圆?
答案 0 :(得分:4)
ArrayList<Ellipse2D>
并在鼠标单击时用新项填充它。在paintComponent(...)
方法中,遍历列表,绘制每个形状。getGraphics()
获得的Graphics对象将您的椭圆绘制到BufferedImage上,然后在paintComponent方法中绘制BufferedImage。使用它时,不要忘记丢弃BI的Graphics对象。