动画 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 不播放 - 鼠标侦听器 - 事件鼠标输入的主要内容,如果未能解决你的问题,请参考以下文章

怎样实现鼠标滚轮翻页时,当某个div进入窗口时该div的动画播放,div离开窗口时动画回放。

停止加载 gif 动画,鼠标悬停开始激活

Jquery 鼠标悬停事件问题

在图片框悬停时启用/禁用 GIF [重复]

如何使用键盘事件通过 URLrequest 播放声音?

鼠标事件监听器的创建和使用