全パッケージ クラス階層 このパッケージ 前項目 次項目 インデックス
クラス 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);
}
}
}
-
ABORTED
- いずれかのメディアのダウンロードが打ち切られたことを示すフラグである。
-
COMPLETE
- メディアのダウンロードが正常に終了したことを示すフラスである。
-
ERRORED
- いずれかのメディアのダウンロードでエラーがあったことを示すフラグである。
-
LOADING
- いずれかのメディアが現在ロードされつつあることを示すフラグである。
-
MediaTracker(Component)
- 指定された 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 をもつすべてのイメージのエラー状態を調べる。
-
removeImage(Image)
- この MediaTracker から、指定されたイメージを取り除く。
-
removeImage(Image, int)
- この MediaTracker の指定された ID から、指定されたイメージを取り除く。
-
removeImage(Image, int, int, int)
- 指定されたサイズと ID をもつ指定のイメージを、この MediaTracker から取り除く。
-
statusAll(boolean)
- 監視しているすべてのメディアの状態の論理和を返す。
-
statusID(int, boolean)
- 指定された ID をもつすべてのメディアの状態の論理和を返す。
-
waitForAll()
- すべてのイメージのロードを開始する。
-
waitForAll(long)
- すべてのイメージのロードを開始する。
-
waitForID(int)
- 指定された ID をもつすべてのイメージのロードを開始し、そのロードが終了するか、エラーを受け取るまで待つ。
-
waitForID(int, long)
- 指定された ID をもつすべてのイメージのロードを開始する。
LOADING
public static final int LOADING
- いずれかのメディアがロードされつつあることを示すフラグです。
- 参照:
- statusAll, statusID
ABORTED
public static final int ABORTED
- いずれかのメディアのダウンロードが打ち切られたことを示すフラグです。
- 参照:
- statusAll, statusID
ERRORED
public static final int ERRORED
- いずれかのメディアのロードでエラーがあったことを示すフラグです。
- 参照:
- statusAll, statusID
COMPLETE
public static final int COMPLETE
- メディアのダウンロードが正常に終了したことを示すフラグです。
- 参照:
- statusAll, statusID
MediaTracker
public MediaTracker(Component comp)
- 指定された Component のイメージを監視する 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 - このイメージを後に監視するときに使用する識別子
- w - このイメージを表するときに使用される幅
- h - このイメージを表するときに使用される高さ
checkAll
public boolean checkAll()
- すべてのイメージのロードが終了したかどうかを調べます。しかし、イメージがすでにロード中でなくても、それらのロードを開始しません。イメージのロードかスケール中にエラーがあると、そのイメージは「完了」とみなされます。isErrorAny() か isErrorID() でエラーを調べてください。
- 返り値:
- すべてのイメージがロードを完了した、もしくは打ち切られたかエラーがある場合、true 。
- 参照:
- checkAll, checkID, isErrorAny, isErrorID
checkAll
public boolean checkAll(boolean load)
- すべてのイメージのロードが終了したかどうかを調べます。load が true の場合、まだロードされていないイメージがあれば、それらのロードを開始します。イメージのロードまたはスケール中にエラーがあると、そのイメージは「完了」とみなされます。isErrorAny() か isErrorID() でエラーを調べてください。
- パラメータ:
- load - このパラメータが 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
- すべてのイメージのロードを開始します。それらのイメージがロード完了する、もしくは打ち切られるかエラーになるまで待ちます。イメージのロードかスケール中にエラーがあると、そのイメージは「完了」とみなされます。isErrorAny() か statusAll() でエラーを調べてください。
- 例外: InterruptedException
- 別のスレッドがこのスレッドに割り込んだ場合。
- 参照:
- waitForID, waitForAll, isErrorAny, isErrorID
waitForAll
public synchronized boolean waitForAll(long ms) throws InterruptedException
- すべてのイメージのロードを開始します。それらのイメージがロードを完了する、もしくは打ち切られるかエラーになるか、指定されたタイムアウトになるまで待ちます。イメージのロードかスケール中にエラーがあると、そのイメージは「完了」とみなされます。isErrorAny() か statusAll() でエラーを調べてください。
- パラメータ:
- 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 をもつ、すべてのイメージのロードが完了したかどうかを調べます。しかし、イメージがすでにロード中でなくても、それらのロードを開始しません。イメージのロードかスケール中にエラーがあると、そのイメージは「完了」とみなされます。isErrorAny() か isErrorID() でエラーを調べてください。
- パラメータ:
- id - どのイメージを調べるのかを指定する識別子
- 返り値:
- 指定されたすべてのイメージがロードを完了した、もしくは打ち切られたかエラーがあると、true が返される。
- 参照:
- checkID, checkAll, isErrorAny, isErrorID
checkID
public boolean checkID(int id,
boolean load)
- 指定された ID をもつすべてのイメージがロードを終了したかどうかを調べます。load が true の場合、その ID をもつイメージでまだロードされていないものがあれば、それらのロードを開始します。イメージのロードかスケール中にエラーがあると、そのイメージは「完了」とみなされます。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をもつすべてのイメージのロードを開始し、それらのイメージがロードを終了するか、エラーになるまで待ちます。イメージのロードかスケール中にエラーがあると、そのイメージは「完了」とみなされます。 statusID()か isErrorID() でエラーを調べてください。
- パラメータ:
- id - どのイメージを待つのかを指定する識別子
- 例外: InterruptedException
- 別のスレッドがこのスレッドに割り込んだ場合。
- 参照:
- waitForAll, waitForID, isErrorAny, isErrorID
waitForID
public synchronized boolean waitForID(int id,
long ms) throws InterruptedException
- 指定された IDをもつすべてのイメージのロードを開始します。それらのイメージがロードを終了するか、エラーになるか、指定されたタイムアウトになるまで待ちます。イメージのロードかスケール中にエラーがあると、そのイメージは「完了」とみなされます。 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
removeImage
public synchronized void removeImage(Image image)
- 指定されたイメージをこの MediaTracker から取り除きます。スケールや ID とは関係なく、すべてのイメージのインスタンスが除去されます。
- パラメータ:
- image - 取り除くイメージ
- 参照:
- removeImage, removeImage
removeImage
public synchronized void removeImage(Image image,
int id)
- 指定されたイメージをこの MediaTrackerの指定された IDから取り除きます。その IDのもとで監視されているイメージのすべてのインスタンスが、スケールとは関係なく除去されます。
- パラメータ:
- image - 取り除くイメージ
- id - どのイメージを削除するかを指定する識別子
- 参照:
- removeImage, removeImage
removeImage
public synchronized void removeImage(Image image,
int id,
int width,
int height)
- 指定されたサイズと ID をもつ指定されたイメージをこの MediaTracker から取り除きます。特定のインスタンス(重複があればそれらも)だけが除去されます。
- パラメータ:
- image - 取り除くイメージ
- id - どのイメージを削除するかを指定する識別子
- width - 取り除く幅 (スケールされていないものは -1)
- height - 取り除く高さ(スケールされていないものは -1)
- 参照:
- removeImage, removeImage
全パッケージ クラス階層 このパッケージ 前項目 次項目 インデックス