This is the simplest applet to animate an array of images. In practice, you should use double-buffering (which this example does not use) to eliminate flickering.
import java.applet.*; import java.awt.*; public class AnimApplet extends Applet implements Runnable { Image[] images = new Image[2]; int frame = 0; volatile Thread thread; public void init() { images[0] = getImage(getDocumentBase(), "http://hostname/image0.gif"); images[1] = getImage(getDocumentBase(), "http://hostname/image1.gif"); } public void start() { (thread = new Thread(this)).start(); } public void stop() { thread = null; } public void paint(Graphics g) { g.drawImage(images[frame], 0, 0, this); } public void run() { int delay = 1000; // 1 second try { while (thread == Thread.currentThread()) { frame = (frame+1)%images.length; repaint(); Thread.sleep(delay); } } catch (Exception e) { } } }
Related Examples |