/*-------------------------- ex12_2.java アプレット:スレッドを使う ---------------------------*/ import java.applet.*; import java.awt.*; import java.util.Random; /* */ public class ex12_2 extends Applet implements Runnable { int x, y, red, grn, blu; Color col; Random rnd; Thread thd = null; // スレッド宣言 public void init() { // 初期化処理 x = 10; y = 10; red = 255; grn = 0; blu = 0; col = new Color(red, grn, blu); rnd = new Random(); thd = new Thread(this); // 新しいスレッドを作る thd.start(); // スレッド開始 } public void paint(Graphics g) { // 描画処理 g.setColor(col); g.fillOval(x, y, 50, 50); } public void run() { // スレッド開始したときに呼び出されるメソッド while (true) { // 無限ループ x = rnd.nextInt(151); // x座標:0,1,2,…,150 の乱数 y = rnd.nextInt(151); // y座標:0,1,2,…,150 の乱数 red = rnd.nextInt(256); // 赤色:0,1,2,…,255 の乱数 grn = rnd.nextInt(256); // 緑色:0,1,2,…,255 の乱数 blu = rnd.nextInt(256); // 青色:0,1,2,…,255 の乱数 col = new Color(red, grn, blu); repaint(); // アプレット強制再描画メソッド(結果としてpaint()が実行される) } } }