クラス java.awt.MediaTracker
全パッケージ  クラス階層  このパッケージ  前項目  次項目  インデックス

クラス java.awt.MediaTracker

java.lang.Object
   |
   +----java.awt.MediaTracker

public class MediaTracker
extends Object
いくつかのメディアオブジェクトの状態を追跡するユーティリティクラス。 メディアオブジェクトにはイメージだけでなくオーディオクリップが含まれるが、 現在はイメージのみがサポートされている。メディアトラッカーを利用するには、 MediaTracker クラスのインスタンスを作成し、追跡するイメージに対しaddImage()を呼びだす。 また、個々のイメージには識別用に一意のIDを割り当てることができる。これらのIDは イメージをフェッチする優先順位をコントロールするとともに、 イメージの特別なサブセットを識別することもできる。 以下がその例である。
import java.applet.Applet;
import java.awt.Color;
import java.awt.Image;
import java.awt.Graphics;
import java.awt.MediaTracker;
public class ImageBlaster extends Applet implements Runnable {
	MediaTracker tracker;
	Image bg;
	Image anim[] = new Image[5];
	int index;
	Thread animator;
	// バックグラウンド(id==0)よりイメージそしてアニメーションフレーム(id==1)を
     // 得て、MediaTrackerに加える
	public void init() {
	    tracker = new MediaTracker(this);
	    bg = getImage(getDocumentBase(), "images/background.gif");
	    tracker.addImage(bg, 0);
	    for (int i = 0; i < 5; i++) {
		anim[i] = getImage(getDocumentBase(), "images/anim"+i+".gif");
		tracker.addImage(anim[i], 1);
	    }
	}
	// アニメーションスレッドを開始
	public void start() {
	    animator = new Thread(this);
	    animator.start();
	}
	// アニメーションスレッドを終了
	public void stop() {
	    animator.stop();
	    animator = null;
	}
	// アニメーションスレッドを実行。
	// 最初、バックグラウンドイメージが完全にロードされるのを待ってから描く。
	// それからアニメーションフレームがロードし終るのを待つ。
	// 最後にアニメーションフレームインデックスをループしインクリメントする。
	public void run() {
	    try {
		tracker.waitForID(0);
		tracker.waitForID(1);
	    } catch (InterruptedException e) {
		return;
	    }
	    Thread me = Thread.currentThread();
	    while (animator == me) {
		try {
		    Thread.sleep(100);
		} catch (InterruptedException e) {
		    break;
		}
		synchronized (this) {
		    index++;
		    if (index >= anim.length) {
			index = 0;
		    }
		}
		repaint();
	    }
	}
	// バックグラウンドイメージがフレームを塗りつぶすため,再描画時に
     // アプレットをクリアする必要はなくペイントメソッドを呼び出せばいい.
	public void update(Graphics g) {
	    paint(g);
	}
	// イメージのロード時にエラーが検出された場合,大きな赤い矩形を描く.
	// 他の場合,バックグラウンドを描画する時はイメージがロードしながら,
     // インクリメンタルに見えるように描画する.最後に現在のアニメーション
     // フレームは部分的なアニメーションを避けるためにすべてのフレーム(id==1)
     // がロードし終るまで,描画しないこと.
	public void paint(Graphics g) {
	    if ((tracker.statusAll(false) & MediaTracker.ERRORED) != 0) {
		g.setColor(Color.red);
		g.fillRect(0, 0, size().width, size().height);
		return;
	    }
	    g.drawImage(bg, 0, 0, this);
	    if (tracker.statusID(1, false) == MediaTracker.COMPLETE) {
		g.drawImage(anim[index], 10, 10, this);
	    }
	}
}

Variable Index

 o ABORTED
なんらかのメディアがダウンロードの途中で中断したことを示すフラグ
 o COMPLETE
メディアのダウンロードが成功したことを示すフラグ
 o ERRORED
なんらかのメディアのダウンロード中にエラーが発生したことを示すフラグ
 o LOADING
なんらかのメディアが現在ロード中であることを示すフラグ

Constructor Index

 o MediaTracker(Component)
指定されたコンポーネントのイメージを追跡するMediaTrackerを作成する。

Method Index

 o addImage(Image, int)
指定されたイメージを追跡を行うイメージのリストに追加する。
 o addImage(Image, int, int, int)
指定されたイメージの縮尺を変更し、追跡を行うイメージのリストに加える。
 o checkAll()
すべてのイメージのロードが終了したかをチェックする。
 o checkAll(boolean)
すべてのイメージのロードが終了したかをチェックする。
 o checkID(int)
指定されたIDを持ったすべてのイメージが終了したかをチェックする。
 o checkID(int, boolean)
指定されたIDを持ったすべてのイメージが終了したかをチェックする。
 o getErrorsAny()
エラーが検出されたすべてのメディアのリストを返す。
 o getErrorsID(int)
指定されたIDを持つメディアでエラーが検出されたもののリストを返す。
 o isErrorAny()
すべてのイメージのエラー状態をチェックする。
 o isErrorID(int)
指定されたIDを持つすべてのイメージのエラーステータスをチェックする。
 o statusAll(boolean)
追跡されているすてのメディアの状態の論理和を返す。
 o statusID(int, boolean)
与えられたIDを持つすべてのメディアの状態の論理和を返す。
 o waitForAll()
すべてのイメージのロードを開始する。
 o waitForAll(long)
すべてのイメージのロードを開始する。
 o waitForID(int)
指定されたIDを持つイメージのロードを開始する。
 o waitForID(int, long)
指定されたIDを持つイメージのロードを開始する。

Variables

 o LOADING
  public final static int LOADING
なんらかのメディアが現在ロード中であることを示すフラグ
参照:
statusAll, statusID
 o ABORTED
  public final static int ABORTED
なんらかのメディアがダウンロードの途中で中断したことを示すフラグ
参照:
statusAll, statusID
 o ERRORED
  public final static int ERRORED
なんらかのメディアのダウンロード中にエラーが発生したことを示すフラグ
参照:
statusAll, statusID
 o COMPLETE
  public final static int COMPLETE
メディアのダウンロードが成功したことを示すフラグ
参照:
statusAll, statusID

Constructors

 o MediaTracker
  public MediaTracker(Component comp)
指定されたコンポーネントのイメージを追跡するMediaTrackerを作成する。
パラメータ:
comp - イメージが描かれるコンポーネント

Methods

 o addImage
  public void addImage(Image image,
                       int id)
指定されたイメージを追跡を行うイメージのリストに追加する。イメージはいずれ デフォルトのサイズで描画される。
パラメータ:
image - 追跡されるイメージ
id - このイメージ後の追跡に使われる識別子
 o addImage
  public synchronized void addImage(Image image,
                                    int id,
                                    int w,
                                    int h)
指定されたイメージの縮尺を変更し、追跡を行うイメージのリストに加える。 イメージはいずれ指定されたサイズで描画される。
パラメータ:
image - 追跡されるイメージ
id - the このイメージを後の追跡に使われる識別子
w - イメージが描画される幅
h - イメージが描画される高さ
 o checkAll
  public boolean checkAll()
すべてのイメージのロードが終了したかをチェックする。ロードされていなくても ロードを開始することはない。ロード中またはスケール中にエラーが 検出された場合、そのイメージは"complete"と認識される。 エラーをチェックするためにはisErrorAny()かisErrorID()を使用する。
返り値:
すべてのイメージのロードが終了、異常終了、またはエラーが検出 された場合trueを返す。
参照:
checkAll, checkID, isErrorAny, isErrorID
 o checkAll
  public synchronized boolean checkAll(boolean load)
すべてのイメージのロードが終了したかをチェックする。ロードがtrueなら まだロードされていないイメージをロードする。 ロード中またはスケール中にエラーが 検出されたらそのイメージは"complete"と認識される。 エラーをチェックするためにはisErrorAny()かisErrorID()を使用する。
パラメータ:
load - パラメータがtrueならイメージのロードを開始する。
返り値:
true すべてのイメージのロードが終了、異常終了、またはエラーが検出 された場合trueを返す.
参照:
isErrorAny, isErrorID, checkID, checkAll
 o isErrorAny
  public synchronized boolean isErrorAny()
すべてのイメージのエラー状態をチェックする。
返り値:
いずれかのイメージのロード中にエラーが検出された場合trueを返す。
参照:
isErrorID, getErrorsAny
 o getErrorsAny
  public synchronized Object[] getErrorsAny()
エラーが検出されたすべてのメディアのリストを返す。
返り値:
メディアオブジェクトの配列を返す。エラーがない場合はnullを返す。
参照:
isErrorAny, getErrorsID
 o waitForAll
  public void waitForAll() throws InterruptedException
すべてのイメージのロードを開始する。すべてが終了、異常終了、またはエラーが 検出されるまで待つ。ロード中またはスケール中にエラーが 検出された場合、そのイメージは"complete"と認識される。 エラーをチェックするためにはisErrorAny()かisErrorID()を使用する。
例外: InterruptedException
別のスレッドがこのスレッドに割り込んだ場合
参照:
waitForID, waitForAll, isErrorAny, isErrorID
 o waitForAll
  public synchronized boolean waitForAll(long ms) throws InterruptedException
すべてのイメージのロードを開始する。すべてが終了、異常終了、またはエラーが 検出されるまで待つ。もしロード中またはスケール中にエラーが 検出されたらそのイメージは"complete"と認識される。 エラーをチェックするためにはisErrorAny()かisErrorID()を使用する。
パラメータ:
ms - ロードが終了するまでの待ち時間
返り値:
すてのイメージが無事ロードされたらtrueを返す
例外: InterruptedException
別のスレッドがこのスレッドに割り込んだ場合
参照:
waitForID, waitForAll, isErrorAny, isErrorID
 o statusAll
  public int statusAll(boolean load)
追跡されているすてのメディアの状態の論理和を返す。
パラメータ:
load - メディアのロードを開始するかを指定
参照:
statusID, LOADING, ABORTED, ERRORED, COMPLETE
 o checkID
  public boolean checkID(int id)
指定されたIDを持ったすべてのイメージが終了したかをチェックする。 ロードされていなくてもロードを開始することはない。 ロード中またはスケール中にエラーが 検出されたらそのイメージは"complete"と認識される。 エラーをチェックするためにはisErrorAny()かisErrorID()を使用する。
パラメータ:
id - チェックするイメージを決めるために使われる識別子
返り値:
すべてのイメージのロードが終了、異常終了、またはエラーが 検出されたらtrueを返す
参照:
checkID, checkAll, isErrorAny, isErrorID
 o checkID
  public synchronized boolean checkID(int id,
                                      boolean load)
指定されたIDを持ったすべてのイメージが終了したかをチェックする。 ロードがtrueならIDを持つロードされていないイメージのロードを 開始する。もしロード中またはスケール中にエラーが 検出されたらそのイメージは"complete"と認識される。 エラーをチェックするためにはisErrorAny()かisErrorID()を使用する。
パラメータ:
id - チェックするイメージを決めるために使われる識別子
load - このパラメータがtrueならロードを開始する
返り値:
すてのイメージのロードが終了、異常終了、またはエラーが 検出されたらtrueを返す
参照:
checkID, checkAll, isErrorAny, isErrorID
 o isErrorID
  public synchronized boolean isErrorID(int id)
指定されたIDを持つすべてのイメージのエラーステータスをチェックする。
パラメータ:
id - チェックするイメージを決めるために使われる識別子
返り値:
イメージのどれかをロード中にエラーが検出された場合 trueを返す。
参照:
isErrorAny, getErrorsID
 o getErrorsID
  public synchronized Object[] getErrorsID(int id)
指定されたIDを持つメディアでエラーが検出されたもののリストを返す。
パラメータ:
id - 返されるイメージを決めるために使われる識別子
返り値:
メディアオブジェクトの配列を返す。エラーが検出されなかった場合は nullを返す。
参照:
isErrorID, getErrorsAny
 o waitForID
  public void waitForID(int id) throws InterruptedException
指定されたIDを持つイメージのロードを開始する。ロードが終了するか、 エラーが検出されるまで待つ。ロード中またはスケール中にエラーが 検出されたらそのイメージは"complete"と認識される。 エラーをチェックするためにはstatusID()かisErrorID()を使用する。
パラメータ:
id - 待つイメージを決定するために使われる識別子
例外: InterruptedException
別のスレッドがこのスレッドに割り込んだ場合
参照:
waitForAll, waitForID, isErrorAny, isErrorID
 o waitForID
  public synchronized boolean waitForID(int id,
                                        long ms) throws InterruptedException
指定されたIDを持つイメージのロードを開始する。ロードが終了するか、 エラーが検出されるか、指定時間を超過するまで待つ。 ロード中またはスケール中にエラーが検出されたらそのイメージは "complete"と認識される。 エラーをチェックするためにはstatusID()かisErrorID()を使用する。
パラメータ:
id - 待つイメージを決定するために使われる識別子
ms - ロードが終了するまでの待ち時間
例外: InterruptedException
別のスレッドがこのスレッドに割り込んだ場合
参照:
waitForAll, waitForID, isErrorAny, isErrorID
 o statusID
  public int statusID(int id,
                      boolean load)
与えられたIDを持つすべてのメディアの状態の論理和を返す。
パラメータ:
id - チェックするイメージを決めるために使われる識別子
load - メディアのロードを開始するかを指定
参照:
statusAll, LOADING, ABORTED, ERRORED, COMPLETE

全パッケージ  クラス階層  このパッケージ  前項目  次項目  インデックス

本マニュアルに関する著作権および商標