next up previous contents
Next: ClockDemoの拡張 Up: アニメーション Previous: ここで学ぶこと   目次

ClockPanelを拡張する

ClockPanelクラスに対して,以下の拡張を行う.

  1. class ClockDemo がスレッド上で実行できるよう class 定義に ``implement Runnable''を追加してRunnable属性を付加する
          public class ClockPanel extends javax.swing.JPanel implements Runnable {
    
    この時点では run メソッドが未定義であるとのエラーメッセージが表示される.
  2. run メソッドの追加

    スレッド上で実行するには run というメソッドが必要になる. スレッドはこのクラスオブジェクトを runメソッドにより呼び出す

    paint メソッドの後付近に以下のrunメソッドを追加する:

          public void run() {
             try {
                 while(true) {   // 無限ループ
                    setClock();         // 時刻をセットして
                    repaint();          // このパネルを再描画する
                    Thread.sleep(1000); // 1000ミリ秒(1秒)休止
                 }
             } catch(InterruptedException e) {}
          }
    

スレッド上でこのオブジェクトの実行が開始されると, 上で定義した run メソッドが呼び出され, whileループ内の処理が繰り返される.



TKinoshita 2016-07-13