在通过SO虔诚地阅读时,我已经看到很多通过经典在java中使用GIF动画的例子:
JLabel mylabel=new JLabel(new ImageIcon("animated.gif"));
哪个工作正常但是当我将mylabel添加到JPanel
时,我注意到每次paintComponent
更改帧时都会调用JPanel的gif
方法。
这真的有必要吗? 是不是将GIF隔离到JLabel?
每次gif循环帧时,重新绘制整个面板(以及添加到其中的任何其他组件)似乎都是浪费时间的浪费。
如果你想知道我为什么关心:从做网页设计(js / css),我学会了如何几乎完全避免回流,并将重绘只隔离到被改变的元素。为表现创造了奇迹。
答案 0 :(得分:4)
这真的有必要吗?
是的:默认情况下JLabel不是不透明的,这就是为什么它的父必须在标签的更改后重新展示自己的原因..如果你已经深入探索了:只有父 < / em>重新绘制标签后面的区域(参见剪辑)