gpt4 book ai didi

java - Repainting Frame 删除之前绘制的形状

转载 作者:行者123 更新时间:2023-11-29 03:10:34 24 4
gpt4 key购买 nike

我目前正在使用 Java 进行绘画,但遇到了 repaint() 删除先前绘制的形状的问题。这是我的问题的示例:

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() 方法。我由此遇到的问题是,创建新椭圆时,先前绘制的椭圆会被删除。还需要注意的是,每次单击鼠标时,我都会重新绘制窗口。如何在不删除之前绘制的椭圆的情况下绘制新的椭圆?

最佳答案

  • 解决方案 1:创建 ArrayList<Ellipse2D>并在鼠标单击时用新项目填充它。在你的paintComponent(...)方法,遍历列表,绘制每个形状。
  • 解决方案 2:使用通过调用 getGraphics() 获得的图形对象将椭圆绘制到 BufferedImage 上在 BufferedImage 上,然后在您的 paintComponent 方法中绘制 BufferedImage。不要忘记在使用完 BI 的 Graphics 对象后对其进行处置。

关于java - Repainting Frame 删除之前绘制的形状,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29609671/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com