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ミリ秒
}
}
}