import java.applet.*;
import java.awt.*;
public class ja30b extends Applet implements Runnable
{
int xpos = 0; //スレッドで移動さす画像のx座標
Thread myThread = null;
Image picA,picB;
public void init(){
picA = getImage(getCodeBase(),"Ban_138.gif"); //画像の読み込み
picB = getImage(getCodeBase(),"Ico_213.gif");
}
public void start(){
if(myThread == null){ //スレッドの開始
myThread = new Thread(this);
myThread.start();
}
}
public void stop(){ //スレッドを停止
if(myThread != null){
myThread.stop();
myThread = null;
}
}
public void paint(Graphics g){
g.drawImage(picA,0,0,this); //背景画像を描画
g.drawImage(picB,xpos,60,this); //移動する画像を描画
}
public void run(){
while(myThread != null){
Rectangle pic1 = new Rectangle(xpos,70,28,16); //移動前の領域
xpos += 10; //移動画像を10ピクセルだけ右に移動
if(xpos > size().width) //Appletの右端に達すると,左端に戻す
xpos = 0;
Rectangle pic2 = new Rectangle(xpos,70,28,16); //移動後の領域
Rectangle pic3 = pic2.union(pic1); //移動前と移動後の両領域を結合
Graphics g = getGraphics();
g.clipRect(pic3.x,pic3.y,pic3.width,pic3.height); //結合した両領域をクリップする
paint(g); //クリップ領域を描画する。
try{
Thread.sleep(300); //0.3秒間隔で移動する
}catch(InterruptedException e){};
}
}
}
末尾