java - 动画 gif 无法播放 - 鼠标监听器 - 鼠标输入事件

标签 java image swing gif mouselistener

我有一个按钮,我已将其替换为图像,悬停时我希望该图像播放动画 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举个例子。
  2. 不要尝试“根据需要”加载图像,而是在初始化时加载它们并在按钮上设置它们。
  3. 更改
    getClass().getResource("images\\button_1_hover.gif")
    getClass().getResource("/images/button_1_hover. gif”)
  4. 更改用于加载图像的方法。 ImageIO 通常不会正确加载动画 GIF。请参阅Show an animated BG in Swing了解详情。

  5. catch (Exception e) { .. 形式的代码更改为
    catch (Exception e) { e.printStackTrace();//非常有用! ..

关于java - 动画 gif 无法播放 - 鼠标监听器 - 鼠标输入事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17296223/

相关文章:

java - 将特定长度的字符数组转换为字符串

java - 将数组传递给构造函数而不声明它?

java - 融合位置崩溃

jquery - 使用 JQuery 查找索引与计数变量匹配的项目

java - 在 JPanel 上填充 JTextField

java - JTabbedPane:如何从上到下而不是从下到上对选项卡进行排序?

java - 递归算法寻找数组中最小的元素

c# - 在不加载图像的情况下使用图像的特定像素格式在 C# 中创建位图

html - 如何将博客上传的所有图片自动设置为默认大小

java - 不点击按钮最小化Jinternal Frame