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){ } // 形式上必要
}
}
}