クラス 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);
}
}
}
-
ABORTED
- なんらかのメディアがダウンロードの途中で中断したことを示すフラグ
-
COMPLETE
- メディアのダウンロードが成功したことを示すフラグ
-
ERRORED
- なんらかのメディアのダウンロード中にエラーが発生したことを示すフラグ
-
LOADING
- なんらかのメディアが現在ロード中であることを示すフラグ
-
MediaTracker(Component)
- 指定されたコンポーネントのイメージを追跡するMediaTrackerを作成する。
-
addImage(Image, int)
- 指定されたイメージを追跡を行うイメージのリストに追加する。
-
addImage(Image, int, int, int)
- 指定されたイメージの縮尺を変更し、追跡を行うイメージのリストに加える。
-
checkAll()
- すべてのイメージのロードが終了したかをチェックする。
-
checkAll(boolean)
- すべてのイメージのロードが終了したかをチェックする。
-
checkID(int)
- 指定されたIDを持ったすべてのイメージが終了したかをチェックする。
-
checkID(int, boolean)
- 指定されたIDを持ったすべてのイメージが終了したかをチェックする。
-
getErrorsAny()
- エラーが検出されたすべてのメディアのリストを返す。
-
getErrorsID(int)
- 指定されたIDを持つメディアでエラーが検出されたもののリストを返す。
-
isErrorAny()
- すべてのイメージのエラー状態をチェックする。
-
isErrorID(int)
- 指定されたIDを持つすべてのイメージのエラーステータスをチェックする。
-
statusAll(boolean)
- 追跡されているすてのメディアの状態の論理和を返す。
-
statusID(int, boolean)
- 与えられたIDを持つすべてのメディアの状態の論理和を返す。
-
waitForAll()
- すべてのイメージのロードを開始する。
-
waitForAll(long)
- すべてのイメージのロードを開始する。
-
waitForID(int)
- 指定されたIDを持つイメージのロードを開始する。
-
waitForID(int, long)
- 指定されたIDを持つイメージのロードを開始する。
LOADING
public final static int LOADING
- なんらかのメディアが現在ロード中であることを示すフラグ
- 参照:
- statusAll, statusID
ABORTED
public final static int ABORTED
- なんらかのメディアがダウンロードの途中で中断したことを示すフラグ
- 参照:
- statusAll, statusID
ERRORED
public final static int ERRORED
- なんらかのメディアのダウンロード中にエラーが発生したことを示すフラグ
- 参照:
- statusAll, statusID
COMPLETE
public final static int COMPLETE
- メディアのダウンロードが成功したことを示すフラグ
- 参照:
- statusAll, statusID
MediaTracker
public MediaTracker(Component comp)
- 指定されたコンポーネントのイメージを追跡するMediaTrackerを作成する。
- パラメータ:
- comp - イメージが描かれるコンポーネント
addImage
public void addImage(Image image,
int id)
- 指定されたイメージを追跡を行うイメージのリストに追加する。イメージはいずれ
デフォルトのサイズで描画される。
- パラメータ:
- image - 追跡されるイメージ
- id - このイメージ後の追跡に使われる識別子
addImage
public synchronized void addImage(Image image,
int id,
int w,
int h)
- 指定されたイメージの縮尺を変更し、追跡を行うイメージのリストに加える。
イメージはいずれ指定されたサイズで描画される。
- パラメータ:
- image - 追跡されるイメージ
- id - the このイメージを後の追跡に使われる識別子
- w - イメージが描画される幅
- h - イメージが描画される高さ
checkAll
public boolean checkAll()
- すべてのイメージのロードが終了したかをチェックする。ロードされていなくても
ロードを開始することはない。ロード中またはスケール中にエラーが
検出された場合、そのイメージは"complete"と認識される。
エラーをチェックするためにはisErrorAny()かisErrorID()を使用する。
- 返り値:
- すべてのイメージのロードが終了、異常終了、またはエラーが検出
された場合trueを返す。
- 参照:
- checkAll, checkID, isErrorAny, isErrorID
checkAll
public synchronized boolean checkAll(boolean load)
- すべてのイメージのロードが終了したかをチェックする。ロードがtrueなら
まだロードされていないイメージをロードする。
ロード中またはスケール中にエラーが
検出されたらそのイメージは"complete"と認識される。
エラーをチェックするためにはisErrorAny()かisErrorID()を使用する。
- パラメータ:
- load - パラメータがtrueならイメージのロードを開始する。
- 返り値:
- true すべてのイメージのロードが終了、異常終了、またはエラーが検出
された場合trueを返す.
- 参照:
- isErrorAny, isErrorID, checkID, checkAll
isErrorAny
public synchronized boolean isErrorAny()
- すべてのイメージのエラー状態をチェックする。
- 返り値:
- いずれかのイメージのロード中にエラーが検出された場合trueを返す。
- 参照:
- isErrorID, getErrorsAny
getErrorsAny
public synchronized Object[] getErrorsAny()
- エラーが検出されたすべてのメディアのリストを返す。
- 返り値:
- メディアオブジェクトの配列を返す。エラーがない場合はnullを返す。
- 参照:
- isErrorAny, getErrorsID
waitForAll
public void waitForAll() throws InterruptedException
- すべてのイメージのロードを開始する。すべてが終了、異常終了、またはエラーが
検出されるまで待つ。ロード中またはスケール中にエラーが
検出された場合、そのイメージは"complete"と認識される。
エラーをチェックするためにはisErrorAny()かisErrorID()を使用する。
- 例外: InterruptedException
- 別のスレッドがこのスレッドに割り込んだ場合
- 参照:
- waitForID, waitForAll, isErrorAny, isErrorID
waitForAll
public synchronized boolean waitForAll(long ms) throws InterruptedException
- すべてのイメージのロードを開始する。すべてが終了、異常終了、またはエラーが
検出されるまで待つ。もしロード中またはスケール中にエラーが
検出されたらそのイメージは"complete"と認識される。
エラーをチェックするためにはisErrorAny()かisErrorID()を使用する。
- パラメータ:
- ms - ロードが終了するまでの待ち時間
- 返り値:
- すてのイメージが無事ロードされたらtrueを返す
- 例外: InterruptedException
- 別のスレッドがこのスレッドに割り込んだ場合
- 参照:
- waitForID, waitForAll, isErrorAny, isErrorID
statusAll
public int statusAll(boolean load)
- 追跡されているすてのメディアの状態の論理和を返す。
- パラメータ:
- load - メディアのロードを開始するかを指定
- 参照:
- statusID, LOADING, ABORTED, ERRORED, COMPLETE
checkID
public boolean checkID(int id)
- 指定されたIDを持ったすべてのイメージが終了したかをチェックする。
ロードされていなくてもロードを開始することはない。
ロード中またはスケール中にエラーが
検出されたらそのイメージは"complete"と認識される。
エラーをチェックするためにはisErrorAny()かisErrorID()を使用する。
- パラメータ:
- id - チェックするイメージを決めるために使われる識別子
- 返り値:
- すべてのイメージのロードが終了、異常終了、またはエラーが
検出されたらtrueを返す
- 参照:
- checkID, checkAll, isErrorAny, isErrorID
checkID
public synchronized boolean checkID(int id,
boolean load)
- 指定されたIDを持ったすべてのイメージが終了したかをチェックする。
ロードがtrueならIDを持つロードされていないイメージのロードを
開始する。もしロード中またはスケール中にエラーが
検出されたらそのイメージは"complete"と認識される。
エラーをチェックするためにはisErrorAny()かisErrorID()を使用する。
- パラメータ:
- id - チェックするイメージを決めるために使われる識別子
- load - このパラメータがtrueならロードを開始する
- 返り値:
- すてのイメージのロードが終了、異常終了、またはエラーが
検出されたらtrueを返す
- 参照:
- checkID, checkAll, isErrorAny, isErrorID
isErrorID
public synchronized boolean isErrorID(int id)
- 指定されたIDを持つすべてのイメージのエラーステータスをチェックする。
- パラメータ:
- id - チェックするイメージを決めるために使われる識別子
- 返り値:
- イメージのどれかをロード中にエラーが検出された場合
trueを返す。
- 参照:
- isErrorAny, getErrorsID
getErrorsID
public synchronized Object[] getErrorsID(int id)
- 指定されたIDを持つメディアでエラーが検出されたもののリストを返す。
- パラメータ:
- id - 返されるイメージを決めるために使われる識別子
- 返り値:
- メディアオブジェクトの配列を返す。エラーが検出されなかった場合は
nullを返す。
- 参照:
- isErrorID, getErrorsAny
waitForID
public void waitForID(int id) throws InterruptedException
- 指定されたIDを持つイメージのロードを開始する。ロードが終了するか、
エラーが検出されるまで待つ。ロード中またはスケール中にエラーが
検出されたらそのイメージは"complete"と認識される。
エラーをチェックするためにはstatusID()かisErrorID()を使用する。
- パラメータ:
- id - 待つイメージを決定するために使われる識別子
- 例外: InterruptedException
- 別のスレッドがこのスレッドに割り込んだ場合
- 参照:
- waitForAll, waitForID, isErrorAny, isErrorID
waitForID
public synchronized boolean waitForID(int id,
long ms) throws InterruptedException
- 指定されたIDを持つイメージのロードを開始する。ロードが終了するか、
エラーが検出されるか、指定時間を超過するまで待つ。
ロード中またはスケール中にエラーが検出されたらそのイメージは
"complete"と認識される。
エラーをチェックするためにはstatusID()かisErrorID()を使用する。
- パラメータ:
- id - 待つイメージを決定するために使われる識別子
- ms - ロードが終了するまでの待ち時間
- 例外: InterruptedException
- 別のスレッドがこのスレッドに割り込んだ場合
- 参照:
- waitForAll, waitForID, isErrorAny, isErrorID
statusID
public int statusID(int id,
boolean load)
- 与えられたIDを持つすべてのメディアの状態の論理和を返す。
- パラメータ:
- id - チェックするイメージを決めるために使われる識別子
- load - メディアのロードを開始するかを指定
- 参照:
- statusAll, LOADING, ABORTED, ERRORED, COMPLETE
全パッケージ クラス階層 このパッケージ 前項目 次項目 インデックス
本マニュアルに関する著作権および商標