BufferedImage bufferedGif = null;
try {
bufferedGif = ImageIO.read(new File("res/" + ("Animations/" + "Untitled 2" + ".gif")));
} catch (IOException e) {
e.printStackTrace();
}
ImageIcon back = new ImageIcon(bufferedGif);
back = new ImageIcon(back.getImage().getScaledInstance((int)(Toolkit.getDefaultToolkit().getScreenSize().getWidth()), (int)(Toolkit.getDefaultToolkit().getScreenSize().getHeight()), Image.SCALE_DEFAULT));
Icon icon = back;
background = new JLabel(icon);
在上面的代码中,当我在JFrame中显示JLabel时,gif没有动画。它显示第一帧,然后在那里冻结。有什么解决办法吗?我使用BufferedImage是因为gif非常大,当我尝试直接使用gif实例化ImageIcon时,它一直滞后。如果我不能使用bufferedimage,还有其他方法可以防止它滞后吗?