アニメーション
スレッドを使うとアニメーションを容易に作ることができる.アプレットの場合は,最初に startメソッドが呼ばれることを利用して,
その中で自分を実行するためのスレッドを作って,startする.
// < applet code="Test15" width=400 height=400 ></applet>
import java.applet.*;
import java.awt.*;
public class Test15 extends Applet implements Runnable{
// スレッドの宣言
public Thread th=null;
int x=50,y=20,dx=4,dy=0;
public void paint(Graphics g){
g.setColor(Color.white);
g.fillRect(0,0,200,200);
g.setColor(Color.black);
g.drawLine(0,150,200,150);
g.setColor(Color.red);
g.drawString("Click me", x, y);
}
// Runnable な Applet はまず, start メソッドが呼ばれる
public void start(){
// スレッドができていない時はここで作成する
if(th==null){ th=new Thread(this); th.start();}
}
// stop メソッドを作っておかないと, WWWブラウザで別のページに行っても動き続けてしまうことがある.
public void stop(){
if(th!=null){ th=null;}
}
// Runnable な Appletでは, run メソッドが実行の主体となる
public void run(){
while(th != null && th.isAlive()){
dy=dy+2;x=x+dx;y=y+dy;
if(x<10){ x=10+(10-x); dx= -dx; }
else if (x>150){ x=150-(x-150); dx= -dx; }
if(y>150){ y=150-(y-150); dy= -dy;}
// 画面の更新. これを忘れると変更の結果が表示されない
repaint();
// Threadクラス のsleep メソッドで ミリ秒単位の sleep(休止) を指定できる.
try { Thread.sleep(200); }
catch(InterruptedException e){}
}
}
}
次に進む