Java 如何使图形移动而不显示跟踪,但在绘制另一个图形时保持跟踪?
我试图用Java 如何使图形移动而不显示跟踪,但在绘制另一个图形时保持跟踪?,java,swing,java-2d,Java,Swing,Java 2d,我试图用paintComponent在JPanel中画一个圆圈,每次调用repaint()。但是当我移除super时,它会显示圆移动的轨迹。那么,我该如何在移动后保持圆圈不显示其轨迹呢?在Swing中绘画是破坏性的,这就是它的工作原理 发生绘制循环时,您需要从头开始重新绘制零部件状态 这意味着您需要维护某种模型,绘制方法可以使用该模型整体重新绘制状态 我建议您阅读上Swing教程中的部分,了解有关绘画工作原理的更多详细信息。它显示了如何在单击鼠标的位置绘制正方形 因此,您的逻辑与此类似,不同的是
paintComponent
在JPanel
中画一个圆圈,每次调用repaint()。但是当我移除super
时,它会显示圆移动的轨迹。那么,我该如何在移动后保持圆圈不显示其轨迹呢?在Swing中绘画是破坏性的,这就是它的工作原理
发生绘制循环时,您需要从头开始重新绘制零部件状态
这意味着您需要维护某种模型,绘制方法可以使用该模型整体重新绘制状态
我建议您阅读上Swing教程中的部分,了解有关绘画工作原理的更多详细信息。它显示了如何在单击鼠标的位置绘制正方形
因此,您的逻辑与此类似,不同的是,您将使用编程逻辑更改圆的x/y位置,而不是使用鼠标确定圆的新位置
您可以使用摆动计时器来安排此动画。本教程还有一节介绍如何使用Swing计时器,其中包含一个可供您入门的工作示例 读了几遍之后,我仍然不确定你想要产生什么效果。如果要保留以前的圆圈,请将所有内容绘制到图像并显示图像。如果不是,则使用super.paint(g)
作为重写方法的第一行。