Ex13_3
/*-----------
Ex13_3.java
スレッド処理
------------*/
package jp_bunkyo;
import java.applet.*;
import java.awt.*;
import java.util.Random;
public class Ex13_3 extends Applet implements Runnable {
int x, y, width, height; // x座標,y座標,幅,高さ用変数宣言
int red, grn, blu; // 3色(red, grn, blu)用変数宣言
Color col;
Random rnd; // 乱数クラス宣言
Thread thd = null; // スレッド宣言
public void init() { // 初期化
x = 10; y = 10; // 初期化:座標(x,y)
width = 50; height = 50; // 初期化:幅 width,高さ height
red = 255; grn = 0; blu = 0; // 初期化:色(red,grn,blu)
col = new Color(red, grn, blu); // 初期化:3色で色を作る
rnd = new Random(); // 初期化:乱数
thd = new Thread(this); // 新しいスレッドを作る
thd.start(); // スレッド開始
}
public void paint(Graphics g) {
g.setColor(col); // 色を設定
g.fillOval(x, y, width, height); // 楕円を描画
}
public void run() { // スレッドを開始した際に呼び出されるメソッド
while (true) { // 無限ループ
x = rnd.nextInt(120); // x座標:0,1,…,119の乱数
y = rnd.nextInt(120); // y座標:0,1,…,119の乱数
width = rnd.nextInt(70)+20; // 幅
height = rnd.nextInt(70)+20;// 高さ
red = rnd.nextInt(256); // 赤色:0,1,…,255の乱数
grn = rnd.nextInt(256); // 緑色:0,1,…,255の乱数
blu = rnd.nextInt(256); // 青色:0,1,…,255の乱数
col = new Color(red, grn, blu);
repaint(); // 再描画(= paint()を実行)
try {
thd.sleep(250); // スレッドを一時停止(250ミリ秒)
} catch (InterruptedException e) {
}
}
}
}