有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java重新绘制框架将删除以前绘制的形状

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


共 (1) 个答案

  1. # 1 楼答案

    • 解决方案1:创建一个ArrayList<Ellipse2D>并在鼠标点击时用一个新项目填充它。在paintComponent(...)方法中,遍历列表,绘制每个形状
    • 解决方案2:使用BuffereImage上调用getGraphics()获得的图形对象,在BuffereImage上绘制椭圆,然后在paintComponent方法中绘制该BuffereImage。使用完BI的图形对象后,别忘了处理它