在jPanel上显示动画gif

在我的JFrame的重写函数中:

 @Override protected void paintComponent(Graphics g) { BufferedImage imagePerson; try { imagePerson = ImageIO.read(new File("errol.gif")); } catch (IOException e) { imagePerson = null; } g.drawImage(imagePerson, i * increment, j * increment - 1, null); } 

如何更改此设置以显示gif上的动画(不使用线程)。 我花了很多时间试图让它工作,但无济于事。

您可以使用ImageIcon来实现此目的。 看看这里和这里 。 如果您需要JPanel上的动画,只需将JLabel (带有ImageIcon )添加到面板。

检查此示例以在Swing中显示动画gif。 你不必使用任何线程:

 Icon imgIcon = new ImageIcon(this.getClass().getResource("ajax-loader.gif")); JLabel label = new JLabel(imgIcon); label.setBounds(668, 43, 46, 14); // for example, you can use your own values frame.getContentPane().add(label); 

资源