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

クラス java.awt.MediaTracker

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

public class MediaTracker
extends Object
implements Serializable
いくつかのメディアオブジェクトの状態を監視するユーティリティクラスです。メディアオブジェクトには、イメージとオーディオクリップが含まれます。ただし、現在のところイメージだけがサポートされます。これを使用するには、監視するイメージごとにインスタンスを作成してから 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;
	// Get the images for the background (id == 0) and the animation
	// frames (id == 1) and add them to the 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);
	    }
	}
	// Start the animation thread.
	public void start() {
	    animator = new Thread(this);
	    animator.start();
	}
	// Stop the animation thread.
	public void stop() {
	    animator.stop();
	    animator = null;
	}
	// Run the animation thread.
	// First wait for the background image to fully load and paint.
	// Then wait for all of the animation frames to finish loading.
	// Finally loop and increment the animation frame index.
	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();
	    }
	}
	// The background image fills our frame so we don't need to clear
	// the applet on repaints, just call the paint method.
	public void update(Graphics g) {
	    paint(g);
	}
	// Paint a large red rectangle if there are any errors loading the
	// images.  Otherwise always paint the background so that it appears
	// incrementally as it is loading.  Finally, only paint the current
	// animation frame if all of the frames (id == 1) are done loading
	// so that we don't get partial animations.
	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)
指定された 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 removeImage(Image)
この MediaTracker から、指定されたイメージを取り除く。
 o removeImage(Image, int)
この MediaTracker の指定された ID から、指定されたイメージを取り除く。
 o removeImage(Image, int, int, int)
指定されたサイズと ID をもつ指定のイメージを、この MediaTracker から取り除く。
 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 static final int LOADING
いずれかのメディアがロードされつつあることを示すフラグです。

参照:
statusAll, statusID
 o ABORTED
  public static final int ABORTED
いずれかのメディアのダウンロードが打ち切られたことを示すフラグです。

参照:
statusAll, statusID
 o ERRORED
  public static final int ERRORED
いずれかのメディアのロードでエラーがあったことを示すフラグです。

参照:
statusAll, statusID
 o COMPLETE
  public static final int COMPLETE
メディアのダウンロードが正常に終了したことを示すフラグです。

参照:
statusAll, statusID

Constructors

 o MediaTracker
  public MediaTracker(Component comp)
指定された Component のイメージを監視する 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 - このイメージを後に監視するときに使用する識別子
w - このイメージを表するときに使用される幅
h - このイメージを表するときに使用される高さ
 o checkAll
  public boolean checkAll()
すべてのイメージのロードが終了したかどうかを調べます。しかし、イメージがすでにロード中でなくても、それらのロードを開始しません。イメージのロードかスケール中にエラーがあると、そのイメージは「完了」とみなされます。isErrorAny() か isErrorID() でエラーを調べてください。

返り値:
すべてのイメージがロードを完了した、もしくは打ち切られたかエラーがある場合、true 。
参照:
checkAll, checkID, isErrorAny, isErrorID
 o checkAll
  public boolean checkAll(boolean load)
すべてのイメージのロードが終了したかどうかを調べます。load が true の場合、まだロードされていないイメージがあれば、それらのロードを開始します。イメージのロードまたはスケール中にエラーがあると、そのイメージは「完了」とみなされます。isErrorAny() か isErrorID() でエラーを調べてください。

パラメータ:
load - このパラメータが 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
すべてのイメージのロードを開始します。それらのイメージがロード完了する、もしくは打ち切られるかエラーになるまで待ちます。イメージのロードかスケール中にエラーがあると、そのイメージは「完了」とみなされます。isErrorAny() か statusAll() でエラーを調べてください。

例外: InterruptedException
別のスレッドがこのスレッドに割り込んだ場合。
参照:
waitForID, waitForAll, isErrorAny, isErrorID
 o waitForAll
  public synchronized boolean waitForAll(long ms) throws InterruptedException
すべてのイメージのロードを開始します。それらのイメージがロードを完了する、もしくは打ち切られるかエラーになるか、指定されたタイムアウトになるまで待ちます。イメージのロードかスケール中にエラーがあると、そのイメージは「完了」とみなされます。isErrorAny() か statusAll() でエラーを調べてください。

パラメータ:
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 をもつ、すべてのイメージのロードが完了したかどうかを調べます。しかし、イメージがすでにロード中でなくても、それらのロードを開始しません。イメージのロードかスケール中にエラーがあると、そのイメージは「完了」とみなされます。isErrorAny() か isErrorID() でエラーを調べてください。

パラメータ:
id - どのイメージを調べるのかを指定する識別子
返り値:
指定されたすべてのイメージがロードを完了した、もしくは打ち切られたかエラーがあると、true が返される。
参照:
checkID, checkAll, isErrorAny, isErrorID
 o checkID
  public boolean checkID(int id,
                         boolean load)
指定された ID をもつすべてのイメージがロードを終了したかどうかを調べます。load が true の場合、その ID をもつイメージでまだロードされていないものがあれば、それらのロードを開始します。イメージのロードかスケール中にエラーがあると、そのイメージは「完了」とみなされます。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をもつすべてのイメージのロードを開始し、それらのイメージがロードを終了するか、エラーになるまで待ちます。イメージのロードかスケール中にエラーがあると、そのイメージは「完了」とみなされます。 statusID()か isErrorID() でエラーを調べてください。

パラメータ:
id - どのイメージを待つのかを指定する識別子
例外: InterruptedException
別のスレッドがこのスレッドに割り込んだ場合。
参照:
waitForAll, waitForID, isErrorAny, isErrorID
 o waitForID
  public synchronized boolean waitForID(int id,
                                        long ms) throws InterruptedException
指定された IDをもつすべてのイメージのロードを開始します。それらのイメージがロードを終了するか、エラーになるか、指定されたタイムアウトになるまで待ちます。イメージのロードかスケール中にエラーがあると、そのイメージは「完了」とみなされます。 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
 o removeImage
  public synchronized void removeImage(Image image)
指定されたイメージをこの MediaTracker から取り除きます。スケールや ID とは関係なく、すべてのイメージのインスタンスが除去されます。

パラメータ:
image - 取り除くイメージ
参照:
removeImage, removeImage
 o removeImage
  public synchronized void removeImage(Image image,
                                       int id)
指定されたイメージをこの MediaTrackerの指定された IDから取り除きます。その IDのもとで監視されているイメージのすべてのインスタンスが、スケールとは関係なく除去されます。

パラメータ:
image - 取り除くイメージ
id - どのイメージを削除するかを指定する識別子
参照:
removeImage, removeImage
 o removeImage
  public synchronized void removeImage(Image image,
                                       int id,
                                       int width,
                                       int height)
指定されたサイズと ID をもつ指定されたイメージをこの MediaTracker から取り除きます。特定のインスタンス(重複があればそれらも)だけが除去されます。

パラメータ:
image - 取り除くイメージ
id - どのイメージを削除するかを指定する識別子
width - 取り除く幅 (スケールされていないものは -1)
height - 取り除く高さ(スケールされていないものは -1)
参照:
removeImage, removeImage

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