0
我使用计时器子类JPanel来显示动画图像。这是定时器的任务。如何在不影响其他组件的情况下重新绘制组件
private class AnimationTimerTask extends TimerTask {
@Override
public void run() {
// Change the current image
repaint();
}
}
此外,我重写paintComponent方法来绘制当前图像。
我使用这个类来创建一个对象作为背景,并且上面有一个标签。我使用“setComponentZOrder”方法来确保标签在背景上。
首先,标签显示正常。但是它在背景图像改变后覆盖了背景,这意味着调用重绘方法。
我猜这个问题是由重绘后台对象造成的。
我将repaint()替换为getParent.repaint(),并解决了问题。但我认为这不是正确的方法。
为了尽快提供更好的帮助,请发布[SSCCE](http://sscce.org/)。顺便说一句 - 那'TimerTask'几乎可以肯定是'javax.swing.Timer'。 –
[为什么不使用重绘](http://docs.oracle.com/javase/7/docs/api/javax/swing/JComponent.html#repaint%28long,%20int,%20int,%20int,%20int %29) – mKorbel