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

时间:2013-06-25 11:35:53

标签: 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 个答案:

答案 0 :(得分:4)

  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(); // very informative! ..