ColorfulFrameTest.java



import java.awt.Frame;
import java.awt.Color;

/** 自身のオブジェクトを生成する ColorfulFrameTestクラス */

public class ColorfulFrameTest extends Frame implements Runnable {

  /** スレッド */

       public Thread thread;

  /** 色のデータの表 */

       protected Color colors[];

  /** カウンタ */

       private int count=0;

  /** コンストラクタ */

       ColorfulFrameTest( int width, int height ) {

              super();

              colors = new Color[7];
              colors[0] = Color.red;    colors[1] = Color.orange;
              colors[2] = Color.yellow; colors[3] = Color.green;
              colors[4] = Color.cyan;   colors[5] = Color.blue;
              colors[6] = Color.magenta;

              thread = new Thread( this );  //スレッドの生成

              setSize( width, height );     // JDK1.0 では resize()
              setBackground( colors[0] );
              show();
       }

  /** スレッドによって実行される仕事 */

       public void run() {

              while( thread.isAlive() ) {

                    try {
                          Thread.sleep(1000); // 一秒間停止
                    } catch(Exception e) {/* 本当は処理が必要 */}
                    setBackground( colors[count] );
                    count++;
                    if( count > 6 ) count=0;
              }
       }

  /** 最初に呼び出されるメソッド */

       public static void main( String argv[] ) {

           /* 自分自身のオブジェクトを生成 */

              ColorfulFrameTest cft = new ColorfulFrameTest( 500, 300 );
              cft.thread.start();
       }
}