Gif больше не анимируется после замены методом setIcon JLabel.JAVA

Программисты JAVA общаются здесь
Anonymous
Gif больше не анимируется после замены методом setIcon JLabel.

Сообщение Anonymous »

Я все еще новичок в Java и программировании в целом. Я пытаюсь отобразить GIF с помощью Swing и следующего кода:

Код: Выделить всё

    JPanel contentPane;
JLabel imageLabel = new JLabel();

public FrostyCanvas(String imageName) {
try {
setDefaultCloseOperation(EXIT_ON_CLOSE);
contentPane = (JPanel) getContentPane();
contentPane.setLayout(new BorderLayout());
setSize(new Dimension(1600, 900));
setTitle("FrostySpirit v1.1.1 (Beta) - FrostyCanvas");
// add the image label
ImageIcon ii = new ImageIcon(this.getClass().getResource(imageName));
imageLabel.setIcon(ii);
contentPane.add(imageLabel, java.awt.BorderLayout.CENTER);
// display target GIF
this.setLocationRelativeTo(null);
this.setVisible(true);
} catch (Exception exception) {
exception.printStackTrace();
}
}
Вызов метода следующий: (в другом классе)

Код: Выделить всё

FrostyCanvas FC = new FrostyCanvas("old.gif");
На этом этапе GIF-изображение анимировано. Затем я пытаюсь заменить GIF другим, используя следующий метод: (в том же классе, что и ForstyCanvas(String imageName))

Код: Выделить всё

public void changeGif(String imageName) throws IOException
{
Icon icon; File file;
file = new File(imageName);
icon = new ImageIcon(ImageIO.read(file));
imageLabel.setIcon(icon);
}
Я вызываю указанный выше метод в другом классе, используя следующий код:

Код: Выделить всё

FC.changeGif("D:\\new.gif")
Изображение успешно заменено. Однако теперь он показывает только самый первый кадр new.gif и больше не анимируется. Как мне заставить новый GIF двигаться?

Подробнее здесь: https://stackoverflow.com/questions/609 ... con-method

Вернуться в «JAVA»