我有一个按钮,我已将其替换为图像,悬停时我希望该图像播放动画 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) {}
}
最佳答案
- 不要为此使用
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();//非常有用! ..
关于java - 动画 gif 无法播放 - 鼠标监听器 - 鼠标输入事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17296223/