在通过 SO 虔诚地阅读时,我看到了许多通过经典在 java 中使用动画 gif 的示例:
JLabel mylabel=new JLabel(new ImageIcon("animated.gif"));
效果很好,但是当我将 mylabel 添加到 a 时JPanel
,我注意到paintComponent
每次gif
更改帧时都会调用 JPanel 的方法。
这真的有必要吗?
gif 不是与 JLabel 隔离的吗?
每次 gif 循环帧时,重新绘制整个面板(以及添加到其中的任何其他组件)似乎是一种昂贵的时间浪费。
如果您想知道我为什么关心:从做网页设计 (js/css) 开始,我学会了如何几乎完全避免重排并将重绘隔离到仅被更改的元素。为性能创造了奇迹。