Java 重新绘制边框将删除以前绘制的形状
我目前正在使用Java进行绘制,遇到了一个问题,即重新绘制会擦除先前绘制的形状。以下是我的问题的一个例子:Java 重新绘制边框将删除以前绘制的形状,java,swing,paintcomponent,Java,Swing,Paintcomponent,我目前正在使用Java进行绘制,遇到了一个问题,即重新绘制会擦除先前绘制的形状。以下是我的问题的一个例子: public void paintComponent(Graphics g) { super.paintComponent(g); g.setColor(Color.LIGHT_GRAY); click.paintPiece(g); } 每次单击鼠标时,都会在paintComponent方法中调用paintPiece方法。我在这里
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.LIGHT_GRAY);
click.paintPiece(g);
}
每次单击鼠标时,都会在paintComponent方法中调用paintPiece方法。我在这里遇到的问题是,在创建新的椭圆时,先前绘制的椭圆将被擦除。还需要注意的是,每次单击鼠标时,我都会重新绘制窗口。如何在不删除先前绘制的椭圆的情况下绘制新的椭圆
解决方案1:创建一个ArrayList并在鼠标单击时用一个新项目填充它。在您的组件中。。。方法,遍历列表,绘制每个形状。
解决方案2:使用BuffereImage上调用getGraphics获得的图形对象将椭圆绘制到BuffereImage上,然后在paintComponent方法中绘制该BuffereImage。使用完BI的图形对象后,别忘了处理它。
解决方案1:创建一个ArrayList并在鼠标单击时用一个新项目填充它。在您的组件中。。。方法,遍历列表,绘制每个形状。
解决方案2:使用BuffereImage上调用getGraphics获得的图形对象将椭圆绘制到BuffereImage上,然后在paintComponent方法中绘制该BuffereImage。使用完BI的图形对象后,别忘了处理它。
public void paintPiece(Graphics g) {
int x = (getMouseX())*70 + 10;
int y = mover.getRow()*70 + 10;
g.fillOval(x, y, 50, 50);
}