BlinkBoard.java



import java.awt.Graphics;
import RandomBoard;

/** 色付きタイルが点滅する BlinkBoard クラス */

public class BlinkBoard extends RandomBoard implements Runnable {

    /** 点滅を行うスレッド */

       public Thread blinker = null;

    /** 点滅の間隔(ミリ秒単位) */

       protected int intervalTime;

    /** 初期設定のメソッド */

       public void init() {

             super.init();   //親のクラスの処理

          // パラメータから点滅の間隔を得る。

             try {
                 intervalTime = getIntParameter( "interval" );
                 if( intervalTime < 50 || intervalTime > 10000 )
                     intervalTime = 1000;
             }
             catch( Exception e ) {
                 intervalTime = 1000;       // デフォルト値
             }
       }

    /** 描画のメソッド */

       public void update( Graphics g ) {

             super.paint( g );  // 親のクラスの処理を呼び出す
       }

    /** アプレットが画面に現れた時に呼び出される。*/

       public void start() {

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

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

       public void stop() {

             if( blinker != null ) {
                   blinker.stop();           //スレッド停止
                   blinker = null;           //スレッド消去
             }
       }

    /** スレッドとして行われる処理 */

       public void run() {

             while( blinker.isAlive() ) {
                  repaint();
                  try {
                       Thread.sleep(intervalTime);  //一時停止
                  }
                  catch (InterruptedException e){ } // 形式上必要
             }
       }
}