首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >动画Gifs触发paintComponent (Java)?

动画Gifs触发paintComponent (Java)?
EN

Stack Overflow用户
提问于 2012-10-08 15:16:12
回答 1查看 538关注 0票数 1

在认真阅读SO的过程中,我看到了许多通过经典的java使用动画gif的例子:

代码语言:javascript
复制
  JLabel mylabel=new JLabel(new ImageIcon("animated.gif"));

这很好用,但当我将我的mylabel添加到JPanel中时,我注意到每次gif更改帧时都会调用JPanel的paintComponent方法。

这真的有必要吗?

gif不是与JLabel隔离的吗?

每次gif循环帧时,重新绘制整个面板(以及添加到其中的任何其他组件)似乎是一种昂贵的时间浪费。

如果你想知道我为什么关心这个:从做网页设计(js/css)开始,我学会了如何几乎完全避免回流,并将重绘隔离到仅更改的元素。在性能上创造了奇迹。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-08 16:19:39

真的有必要吗?

是: JLabel在默认情况下不是不透明的,这就是为什么它的父级必须在标签更改后重新绘制自己的原因。如果你研究得更深入一些:父对象只重画标签后面的区域(参见片段)

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12776969

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档