gpt4 book ai didi

java - 动画 Gif 触发 paintComponent (Java)?

转载 作者:行者123 更新时间:2023-11-29 03:41:56 25 4
gpt4 key购买 nike

在虔诚地阅读 SO 时,我看到了许多通过经典在 Java 中使用动画 gif 的示例:

  JLabel mylabel=new JLabel(new ImageIcon("animated.gif"));

效果很好,但是当我将 mylabel 添加到 JPanel 时,我注意到每次 gif 时都会调用 JPanel 的 paintComponent 方法改变框架。

真的有必要吗?
gif 不是与 JLabel 隔离的吗?

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

如果您想知道我为什么关心:从网页设计 (js/css) 中,我学会了如何几乎完全避免重排并将重绘隔离到仅被更改的元素。为性能创造奇迹。

最佳答案

Is that really necessary?

是的:默认情况下,JLabel 不是不透明的,这就是为什么它的父级必须在标签发生变化时重新绘制自身的原因。如果您进行了更深入的探索:父级 重新绘制标签后面的区域(见剪辑)

关于java - 动画 Gif 触发 paintComponent (Java)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12776969/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com