Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

スレッドの使い方について

http://www.hellohiro.com/thread.htm
↑このページから引用

import java.awt.Graphics;
import java.applet.Applet;
import java.util.Date;

public class HelloWorldClockApplet extends Applet implements Runnable {
  Thread thread = null;;
  // paintメソッドをオーバーライド
  public void paint(Graphics g) {
    // 現在の時刻を座標(20,20)の位置に描画
    Date now = new Date();
    g.drawString(now.toString() , 20, 20);
  }
  // startメソッドをオーバーライド
  public void start() {
    if (thread==null) {
      // スレッドを生成
      thread = new Thread(this);
      // スレッドを開始
      thread.start();
    }
  }
  // stopメソッドをオーバーライド
  public void stop() {
    // スレッド終了
    thread = null;
  }

  // スレッドの処理
  public void run() {
    while (thread!=null) {
      // 再描画します
      repaint();
      try {
        // スレッドを1000ミリ秒停止します
        thread.sleep(1000);
      } catch (InterruptedException e) {
      }
    }
  }
}

stop()とrun()はいつ呼び出されるんですか?
なぜ;が2つついているんですか?<Thread thread = null;;

7

回答

4497

閲覧

7件の回答

評価

0

>stop()とrun()はいつ呼び出されるんですか?
stop()はアプレットがアンロードされるときです。
run()は上のほうにも書いてありますが、Thread.start()から呼ばれます。

>なぜ;が2つついているんですか?
単なる記述ミスです。

評価

0

start()はいつ呼び出されましたか?

評価

0

ちょっと間違えてました。
stop()はアンロードではなく、非アクティブ時です。
アンロードはdestroy()です。
start()はアクティブ時です。

評価

0

このプログラムを実行するとちらつかないときとちらつくときがあります。何でですか?

評価

0

少しは自分で調べてください。

評価

0

先にこのページで質問されてはいかがですか?

http://www.hellohiro.com/bbs/htbbs.html

アホなボンドさん。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。