classes/SlideImage2.java



import browser.Applet;
import awt.Graphics;
import awt.Image;

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

       Thread slideThread=null;    // 画像の移動を行うスレッド
       private Image image=null;   // イメージ
       private int x=0;            // イメージのアプレット内の位置

    /**
     初期設定の関数。
     指定された URL のイメージを生成し、アプレットのサイズを設定。
     */
       protected void init() {

             String imageSource = getAttribute("image");
             if ( imageSource== null )
                  imageSource = "/hokusei/staff/fujiki.gif";

             image = getImage( imageSource );

             resize( image.width*2, image.height );
       }

    /**
     アプレットの表示を行う関数。初期設定の画像。
     */
       public void paint( Graphics g ) {

             g.drawImage( image, 0, 0 );
             g.drawImage( image, image.width, 0 );
       }

    /**
     アプレットの表示の変更行う関数。
     アプレットのクリアを行わないで、イメージを描き直す。
     */
       public void update( Graphics g ) {

             g.drawImage( image, x - image.width, 0 );
             g.drawImage( image, x, 0 );
             g.drawImage( image, x + image.width, 0 );
       }

    /**
     アプレットが画面に現れた時に呼び出される。
     */
       protected void start() {

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

    /**
     アプレットが画面から消えた時に呼び出される。
     */
       protected void stop() {

             if( slideThread != null ) {
                   slideThread = null;           //スレッド停止
             }
       }

    /**
     アプレットが続行する作業
     */
       public void run() {

             while( slideThread.isAlive() ) {
                  repaint();
                  x = (x+4) % image.width;      //位置をずらす
                  Thread.sleep(200);            //一時停止200ミリ秒
             }
       }
}