とりあえず,“円が脈動する”アニメーションを作ってみましょう.キーポイントは,スレッド機能を組み込むための指定と,スレッドの作成・実行・停止の方法です.
import java.awt.*; import java.applet.Applet; public class Pulsing extends Applet implements Runnable{ Thread myThread = null; // これが専用の実行環境です. int cx, cy, r=10, dr=2; public void start() { if(myThread==null) { // 動いていなければ myThread = new Thread(this); // 自分(this)用の実行環境を作り myThread.start(); // 「動かし」ます. } } public void stop() { if(myThread!=null) { // 動いていれば myThread.stop(); // 「止めて」 myThread=null; // 実行環境を放棄します. } } public void run() { while(true) { // 無限に繰り返します. if(r > cy || r < 10) dr = -dr; r = r+dr; // 半径を変えて repaint(); // 描き直して try{ myThread.sleep(100); } // 100ミリ秒休止 catch(InterruptedException e){ } } } public void init(){ setBackground(Color.white); setForeground(Color.blue); cx = getSize().width/2; cy = getSize().height/2; } public void paint(Graphics g){ g.drawOval(cx-r, cy-r, 2*r, 2*r); } }
26.1.9.23 アプレットの動き | 26.1.9.24 脈動円 | 26.1.9.25 スレッド | ||
2009年度版に向けて現在作業中です.
このページに関してお気づきの点がありましたら
コメント投稿システムまでお願いします.
|
Thu, 02 Sep 2004 19:10:05 JST (1793d) |