2

我有一个用图像替换的按钮,在悬停时我希望图像播放动画 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) {}
        }
4

1 回答 1

4
  1. 不要为此使用 a ,只需使用, 等MouseListener设置图标 。请参阅此答案以获取示例。setPressedIcon(Icon)setRolloverIcon(Icon)
  2. 不要尝试“根据需要”加载图像,而是在初始化时加载它们并在按钮上设置它们。
  3. 更改
    getClass().getResource("images\\button_1_hover.gif")
    getClass().getResource("/images/button_1_hover.gif")
  4. 更改用于加载图像的方法。ImageIO 通常不会正确加载动画 GIF。有关详细信息,请参阅在 Swing 中显示动画背景
  5. 将表单的代码更改
    catch (Exception e) { ..
    catch (Exception e) { e.printStackTrace(); // very informative! ..
于 2013-06-25T11:46:17.287 回答