Clock.java
import java.applet.Applet;
import java.awt.Graphics;
import java.awt.Color;
import java.util.Date;
/** デジタル時計のアプレットClockクラスの定義 */
public class Clock extends Applet implements Runnable {
/** 時刻の更新を行うスレッド */
public Thread clock = null;
/** 初期設定のメソッド */
public void init() {
resize( 210, 36 );
}
/** アプレットの表示(初期状態)を行うメソッド */
public void paint( Graphics g ) {
g.setColor( Color.black );
g.fillRect( 0, 0, size().width, size().height );
}
/** アプレットの表示の更新を行うメソッド */
public void update( Graphics g ) {
Date date = new Date(); // 現在の時刻を取得
paint( g ); // 前の表示を消すため
g.setColor( Color.yellow );
g.drawString( date.toString(), 4, 24 );
}
/** アプレットが画面に現れた時に呼び出される */
public void start() {
if( clock == null ) {
clock = new Thread(this); // スレッド生成
clock.start(); // スレッド起動
}
}
/** アプレットが画面から消えた時に呼び出される */
public void stop() {
if( clock != null ) {
clock.stop(); // スレッド停止
clock = null; // スレッド消去
}
}
/** スレッドとして行われる処理 */
public void run() {
while( clock.isAlive() ) {
repaint();
try {
Thread.sleep(200); // 200ミリ秒停止
} catch (InterruptedException e){ } // 例外処理が必要
}
}
}