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){ } // 例外処理が必要
                }
        }
}