SlideImage.java



import java.applet.Applet;
import java.awt.Graphics;
import java.awt.Image;

/** 画像をループして表示するアプレットSlideImageクラスの定義 */

public class SlideImage extends Applet implements Runnable {

  /** 画像の移動を行うスレッド */

        public Thread slider = null;

  /** イメージ */

        protected Image image = null;

  /** イメージのアプレット内の位置 */

        protected int x = 0;

  /** 初期設定のメソッド */

        public void init() {

                String imageSource = getParameter("image");
                if ( imageSource == null ) imageSource = "myphoto.gif";
                image = getImage( getDocumentBase(), imageSource );
        }

  /** アプレットの表示を行うメソッド */

        public void paint( Graphics g ) {

                g.drawImage( image, x - image.getWidth(this), 0, this );
                g.drawImage( image, x, 0, this);
        }

  /** アプレットが画面に現れた時に呼び出される */

        public void start() {

                if( slider == null ) {
                        slider = new Thread(this);  // スレッド生成
                        slider.start();             // スレッド起動
                }
        }

  /** アプレットが画面から消えた時に呼び出される */

        public void stop() {

                        if( slider != null ) {
                                slider.stop();      // スレッド停止
                                slider = null;      // スレッド消去
                        }
        }

  /** スレッドとして行われる処理 */

        public void run() {

                while( slider.isAlive() ) {
                        repaint();
                        x = (x+4) % image.getWidth(this);  // 位置をずらす
                        try {
                                Thread.sleep(200);   // 一時停止200ミリ秒
                        } catch (InterruptedException e){}  // 例外処理が必要
                }
        }
}