我试图用paintComponent
JPanel
画一个圆圈,每次它去除所有原始油漆时我都会打电话给repaint()
。但是当我删除super
时,它会显示圆圈移动的痕迹。那么我应该怎么做才能在移动后保持圆圈而不显示它的痕迹呢?
Swing 中的绘画是破坏性的,这就是它的工作原理。
发生绘制周期时,应从头开始重新绘制组件状态。
这表明您需要维护某种模型,绘制方法可以使用它来重新绘制整个状态。
我建议看看 AWT 和 Swing 中的绘画 有关绘画如何工作的更多详细信息
首先阅读自定义绘画的 Swing 教程中的部分。它演示如何在单击鼠标的位置绘制正方形。
因此,您的逻辑将是相似的,只是不使用鼠标来确定圆的新位置,而是使用编程逻辑来更改圆的 x/y 位置。
可以使用Swing Timer
来计划此动画。本教程还有一个关于How to Use Swing Timers
的部分,其中包含一个工作示例来帮助您入门。