动画 gif 不播放 - 鼠标侦听器 - 事件鼠标输入
Posted
技术标签:
【中文标题】动画 gif 不播放 - 鼠标侦听器 - 事件鼠标输入【英文标题】:Animated gif does not play - mouse listener - event mouse entered 【发布时间】:2013-06-22 04:25:45 【问题描述】:我有一个用图像替换的按钮,在悬停时我希望图像播放动画 gif。我添加了一个鼠标侦听器并输入了将图像更改为 gif 的代码。图像变为gif;但是 gif 没有动画。我已经在这个网站上查找过以前的答案,但很少有人能够提供帮助。
@Override
public void mouseEntered(MouseEvent arg0)
try
Image img = ImageIO.read(getClass().getResource("images\\button_1_hover.gif"));
btnShip1.setIcon(new ImageIcon(img));
catch (IOException ex)
【问题讨论】:
【参考方案1】:-
不要为此使用
MouseListener
,只需使用设置图标,
setPressedIcon(Icon)
,
setRolloverIcon(Icon)
等。有关示例,请参阅 this answer。
不要尝试“根据需要”加载图像,而是在初始化时加载它们并在按钮上设置它们。
更改getClass().getResource("images\\button_1_hover.gif")
为getClass().getResource("/images/button_1_hover.gif")
更改用于加载图像的方法。 ImageIO 通常不会正确加载动画 GIF。详情请见Show an animated BG in Swing。
将表单catch (Exception e) ..
的代码更改为catch (Exception e) e.printStackTrace(); // very informative! ..
【讨论】:
+1 已经有一段时间了,因为我完全忽略了/images/...
和 setXXX 方法:|!但是ImageIO.read
会让 gif 动画吗?
@DavidKroukamp No. 详情请见Show an animated BG in Swing。以上是关于动画 gif 不播放 - 鼠标侦听器 - 事件鼠标输入的主要内容,如果未能解决你的问题,请参考以下文章