The Java Developers Almanac 1.4


Order this book from Amazon.

   
Home > List of Packages > java.applet  [8 examples] > Images  [2 examples]

e558. Animating an Array of Images in an Applet

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
e557. Loading and Drawing an Image in an Applet

See also: Sound   


© 2002 Addison-Wesley.