アニメーション


スレッドを使うとアニメーションを容易に作ることができる.アプレットの場合は,最初に 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){}
    }
  }
}

次に進む