e558. 在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

e558. 在Applet中多图片交互显示

上一篇:错题和经典例题:数据库保护,再重新刷亿遍2333!


下一篇:e551. 精简的Applet