classes/BlinkBoard.java
import BlinkBoard;
import BoardCell;
import awt.Graphics;
import awt.Color;
/**
ランダムに絵を表示する RandomBoard クラス
*/
class BlinkBoard extends RandomBoard implements Runnable {
Thread paintThread=null; // 画像の表示を行うスレッド
protected int interval; // コマ送りの間隔
/**
初期設定の関数。アプレットのサイズを設定。
*/
protected void init() {
super.init(); // 親のクラスで定義された処理
interval = getIntValue( "interval" );
if( interval == 0 ) interval=800;
if( interval < 30 || interval > 5000 )
interval=800;
}
/**
アプレットの表示(初期状態)を行う関数。
*/
public void paint( Graphics g ) {
super.paint( g ); // 親のクラスで定義された処理
}
/**
アプレットの表示の変更を行う関数。
*/
public void update( Graphics g ) {
for( int i=0; i<iMax; i++ )
for( int j=0; j<jMax; j++ ) {
if( cell[i][j].toBePainted == true )
cell[i][j].paint( g );
if( cell[i][j].toBePainted == false &&
cell[i][j].isPainted == true )
cell[i][j].clear( g );
}
}
/**
アプレットが続行する作業
*/
public void run() {
while( paintThread.isAlive() ) {
makeTable();
repaint();
Thread.sleep(interval); //一時停止のミリ秒
}
}
/**
アプレットが画面に現れた時に呼び出される。
*/
protected void start() {
if( paintThread == null ) {
paintThread = new Thread(this);
paintThread.start(); //スレッド起動
}
}
/**
アプレットが画面から消えた時に呼び出される。
*/
protected void stop() {
if( paintThread != null ) {
paintThread = null; //スレッド停止
}
}
}