Java tutorial
import java.awt.Graphics; import javax.swing.Icon; import javax.swing.ImageIcon; import javax.swing.JLabel; public class AnimatedLabel extends JLabel implements Runnable { protected Icon[] icons; protected int index = 0; protected boolean isRunning; public AnimatedLabel(String gifName, int numGifs) { icons = new Icon[numGifs]; for (int i = 0; i < numGifs; i++) icons[i] = new ImageIcon(gifName + i + ".gif"); setIcon(icons[0]); Thread tr = new Thread(this); tr.setPriority(Thread.MAX_PRIORITY); tr.start(); } public void setRunning(boolean r) { isRunning = r; } public boolean getRunning() { return isRunning; } public void run() { while (true) { if (isRunning) { index++; if (index >= icons.length) index = 0; setIcon(icons[index]); Graphics g = getGraphics(); icons[index].paintIcon(this, g, 0, 0); } else { if (index > 0) { index = 0; setIcon(icons[0]); } } try { Thread.sleep(500); } catch (Exception ex) { } } } }