- すべての実装されたインタフェース:
- Serializable
public class MediaTracker extends Object implements Serializable
MediaTrackerクラスは、いくつかのメディア・オブジェクトのステータスを追跡するためのユーティリティ・クラスです。 メディア・オブジェクトには、イメージとオーディオ・クリップが含まれます。ただし、現在のところイメージだけがサポートされています。 
 
 メディア・トラッカを使用するには、監視するイメージごとにMediaTrackerのインスタンスを生成してからaddImageを呼び出します。 また、それぞれのイメージには、固有の識別子を割り当てることができます。 これらの識別子は、イメージを取り出す優先順位を制御します。 また、個別に待機できるイメージのサブセットを識別するためにも使用されます。 低位のID番号を持つイメージは、高位のID番号を持つイメージより優先的にロードされます。 
 
 動画イメージの監視は、動画イメージのロードおよび描画のマルチパートの特性のため、常に有効であるとは限りませんが、サポートされています。 MediaTrackerは最初のフレームが完全にロードされたときに、動画イメージを完全にロードされたものとして扱います。 その時点でMediaTrackerはイメージが完全にロードされたことを待機者に伝えます。 最初のイメージのロードが完了したときに、ImageObserverがイメージを監視していない場合、イメージ自体がフラッシュし、リソースが節約されます(Image.flush()を参照してください)。 
 
 次にMediaTrackerを使用した例を示します。
 
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 = 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 the 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); } } }
- 導入されたバージョン:
- 1.0
- 関連項目:
- 直列化された形式
- 
フィールドのサマリー
- 
コンストラクタのサマリーコンストラクタ コンストラクタ 説明 MediaTracker(Component comp)指定されたコンポーネントのイメージを監視するメディア・トラッカを作成します。
- 
メソッドのサマリー修飾子と型 メソッド 説明 voidaddImage(Image image, int id)このメディア・トラッカによって監視されているリストにイメージを追加します。voidaddImage(Image image, int id, int w, int h)このメディア・トラッカによって監視されているリストに、スケーリングされたイメージを追加します。booleancheckAll()このメディア・トラッカによって監視されているすべてのイメージが、ロードを完了したかどうかを判定します。booleancheckAll(boolean load)このメディア・トラッカによって監視されているすべてのイメージが、ロードを完了したかどうかを判定します。booleancheckID(int id)このメディア・トラッカによって監視される、指定された識別子でタグ付けされたすべてのイメージが、ロードを完了したかどうかを判定します。booleancheckID(int id, boolean load)このメディア・トラッカによって監視される、指定された識別子でタグ付けされたすべてのイメージが、ロードを完了したかどうかを判定します。Object[]getErrorsAny()エラーがあったすべてのメディアのリストを返します。Object[]getErrorsID(int id)指定されたIDを持つメディアのうちエラーになったもののリストを返します。booleanisErrorAny()すべてのイメージのエラー状態を調べます。booleanisErrorID(int id)このメディア・トラッカによって監視される、指定された識別子を持つすべてのイメージのエラー状態を調べます。voidremoveImage(Image image)指定されたイメージをこのメディア・トラッカから削除します。voidremoveImage(Image image, int id)このメディア・トラッカの指定された監視IDから指定されたイメージを削除します。voidremoveImage(Image image, int id, int width, int height)指定された幅、高さ、IDを持つ指定されたイメージをこのメディア・トラッカから削除します。intstatusAll(boolean load)このメディア・トラッカによって追跡されるすべてのメディアのステータスのビット単位の論理ORを計算して返します。intstatusID(int id, boolean load)このメディア・トラッカによって追跡される指定された識別子を持つすべてのメディアのステータスのビット単位の論理ORを計算して返します。voidwaitForAll()このメディア・トラッカによって監視されるすべてのイメージのロードを開始します。booleanwaitForAll(long ms)このメディア・トラッカによって監視されるすべてのイメージのロードを開始します。voidwaitForID(int id)このメディア・トラッカによって監視される、指定された識別子を持つすべてのイメージのロードを開始します。booleanwaitForID(int id, long ms)このメディア・トラッカによって監視される、指定された識別子を持つすべてのイメージのロードを開始します。
- 
フィールド詳細
- 
コンストラクタの詳細- 
MediaTrackerpublic MediaTracker(Component comp)指定されたコンポーネントのイメージを監視するメディア・トラッカを作成します。- パラメータ:
- comp- イメージが最終的に描画されるコンポーネント
 
 
- 
- 
メソッドの詳細- 
addImagepublic void addImage(Image image, int id)このメディア・トラッカによって監視されているリストにイメージを追加します。 そのイメージは、最終的にそのデフォルトの(スケーリングされていない)サイズで表されます。- パラメータ:
- image- 追跡されるイメージ
- id- このイメージを監視するために使用する識別子
 
- 
addImagepublic void addImage(Image image, int id, int w, int h)このメディア・トラッカによって監視されているリストに、スケーリングされたイメージを追加します。 そのイメージは、最終的に指定された幅と高さで表されます。- パラメータ:
- image- 追跡されるイメージ
- id- このイメージを監視するために使用する識別子
- w- イメージが描画される領域の幅
- h- イメージが描画される領域の高さ
 
- 
checkAllpublic boolean checkAll()このメディア・トラッカによって監視されているすべてのイメージが、ロードを完了したかどうかを判定します。このメソッドは、イメージがまだロード中でなければ、それらのロードを開始しません。 イメージのロードまたはスケーリング中にエラーが発生すると、そのイメージのロードは完了したと見なされます。 エラーをチェックするには、 isErrorAnyまたはisErrorIDメソッドを使用します。- 戻り値:
- すべてのイメージがロードを完了したか、強制的に中止されたか、またはエラーを検出した場合はtrue、それ以外の場合はfalse
- 関連項目:
- checkAll(boolean),- checkID(int),- isErrorAny(),- isErrorID(int)
 
- 
checkAllpublic boolean checkAll(boolean load)このメディア・トラッカによって監視されているすべてのイメージが、ロードを完了したかどうかを判定します。loadフラグの値がtrueである場合、このメソッドは、まだロードされていないすべてのイメージのロードを開始します。イメージのロードまたはスケーリング中にエラーが発生すると、そのイメージのロードは完了したと見なされます。 エラーをチェックするには、 isErrorAnyおよびisErrorIDメソッドを使用します。- パラメータ:
- load-- trueの場合は、まだロードされていないすべてのイメージのロードを開始する
- 戻り値:
- すべてのイメージがロードを完了したか、強制的に中止されたか、またはエラーを検出した場合はtrue、それ以外の場合はfalse
- 関連項目:
- checkID(int),- checkAll(),- isErrorAny(),- isErrorID(int)
 
- 
isErrorAnypublic boolean isErrorAny()すべてのイメージのエラー状態を調べます。- 戻り値:
- このメディア・トラッカによって監視されるイメージのいずれかでロード中にエラーがあった場合はtrue、そうでない場合はfalse
- 関連項目:
- isErrorID(int),- getErrorsAny()
 
- 
getErrorsAnypublic Object[] getErrorsAny()エラーがあったすべてのメディアのリストを返します。- 戻り値:
- このメディア・トラッカによって監視されるメディア・オブジェクトのうちで、エラーがあったメディア・オブジェクトの配列。エラーのあるオブジェクトがない場合はnull
- 関連項目:
- isErrorAny(),- getErrorsID(int)
 
- 
waitForAllpublic void waitForAll() throws InterruptedExceptionこのメディア・トラッカによって監視されるすべてのイメージのロードを開始します。 このメソッドは、監視中のすべてのイメージのロードが完了するまで待機します。イメージのロードまたはスケーリング中にエラーが発生すると、そのイメージのロードは完了したと見なされます。 エラーをチェックするには、 isErrorAnyまたはisErrorIDメソッドを使用します。- 例外:
- InterruptedException- いずれかのスレッドがこのスレッドに割り込んだ場合
- 関連項目:
- waitForID(int),- waitForAll(long),- isErrorAny(),- isErrorID(int)
 
- 
waitForAllpublic boolean waitForAll(long ms) throws InterruptedExceptionこのメディア・トラッカによって監視されるすべてのイメージのロードを開始します。 このメソッドは、監視中のすべてのイメージのロードが完了するまでか、ms引数によりミリ秒単位で指定された時間が経過するまで待機します。イメージのロードまたはスケーリング中にエラーが発生すると、そのイメージのロードは完了したと見なされます。 エラーをチェックするには、 isErrorAnyまたはisErrorIDメソッドを使用します。- パラメータ:
- ms- ロードが完了するまで待機する時間(ミリ秒)
- 戻り値:
- すべてのイメージのロードが完了した場合はtrue、そうでない場合はfalse
- 例外:
- InterruptedException- スレッドがこのスレッドに割り込んだ場合。
- 関連項目:
- waitForID(int),- waitForAll(long),- isErrorAny(),- isErrorID(int)
 
- 
statusAllpublic int statusAll(boolean load)このメディア・トラッカによって追跡されるすべてのメディアのステータスのビット単位の論理ORを計算して返します。MediaTrackerクラスによって定義される可能性のあるフラグは、LOADING、ABORTED、ERRORED、およびCOMPLETEです。 ロードを開始していないイメージの状態はゼロで表されます。loadの値がtrueである場合、このメソッドは、まだロードされていないすべてのイメージのロードを開始します。- パラメータ:
- load-- trueの場合は、まだロードされていないすべてのイメージのロードを開始する
- 戻り値:
- 監視中のすべてのメディアの状態のビット単位の論理和
- 関連項目:
- statusID(int, boolean),- LOADING,- ABORTED,- ERRORED,- COMPLETE
 
- 
checkIDpublic boolean checkID(int id)このメディア・トラッカによって監視される、指定された識別子でタグ付けされたすべてのイメージが、ロードを完了したかどうかを判定します。このメソッドは、イメージがまだロード中でなければ、それらのロードを開始しません。 イメージのロードまたはスケーリング中にエラーが発生すると、そのイメージのロードは完了したと見なされます。 エラーをチェックするには、 isErrorAnyまたはisErrorIDメソッドを使用します。- パラメータ:
- id- チェックするイメージの識別子
- 戻り値:
- すべてのイメージがロードを完了したか、強制的に中止されたか、またはエラーを検出した場合はtrue、それ以外の場合はfalse
- 関連項目:
- checkID(int, boolean),- checkAll(),- isErrorAny(),- isErrorID(int)
 
- 
checkIDpublic boolean checkID(int id, boolean load)このメディア・トラッカによって監視される、指定された識別子でタグ付けされたすべてのイメージが、ロードを完了したかどうかを判定します。loadフラグの値がtrueである場合、このメソッドは、まだロードされていないすべてのイメージのロードを開始します。イメージのロードまたはスケーリング中にエラーが発生すると、そのイメージのロードは完了したと見なされます。 エラーをチェックするには、 isErrorAnyまたはisErrorIDメソッドを使用します。- パラメータ:
- id- チェックするイメージの識別子
- load-- trueの場合は、まだロードされていないすべてのイメージのロードを開始する
- 戻り値:
- すべてのイメージがロードを完了したか、強制的に中止されたか、またはエラーを検出した場合はtrue、それ以外の場合はfalse
- 関連項目:
- checkID(int, boolean),- checkAll(),- isErrorAny(),- isErrorID(int)
 
- 
isErrorIDpublic boolean isErrorID(int id)このメディア・トラッカによって監視される、指定された識別子を持つすべてのイメージのエラー状態を調べます。- パラメータ:
- id- チェックするイメージの識別子
- 戻り値:
- 指定された識別子を持つイメージのいずれかでロード中にエラーがあった場合はtrue、そうでない場合はfalse
- 関連項目:
- isErrorAny(),- getErrorsID(int)
 
- 
getErrorsIDpublic Object[] getErrorsID(int id)指定されたIDを持つメディアのうちエラーになったもののリストを返します。- パラメータ:
- id- チェックするイメージの識別子
- 戻り値:
- 指定された識別子を持つこのメディア・トラッカによって監視されるメディア・オブジェクトのうちで、エラーがあったメディア・オブジェクトの配列。エラーのあるオブジェクトがない場合はnull
- 関連項目:
- isErrorID(int),- isErrorAny(),- getErrorsAny()
 
- 
waitForIDpublic void waitForID(int id) throws InterruptedExceptionこのメディア・トラッカによって監視される、指定された識別子を持つすべてのイメージのロードを開始します。 このメソッドは、指定された識別子を持つすべてのイメージがロードを完了するまで待機します。イメージのロードまたはスケーリング中にエラーが発生すると、そのイメージのロードは完了したと見なされます。 エラーをチェックするには、 isErrorAnyおよびisErrorIDメソッドを使用します。- パラメータ:
- id- チェックするイメージの識別子
- 例外:
- InterruptedException- スレッドがこのスレッドに割り込んだ場合。
- 関連項目:
- waitForAll(),- isErrorAny(),- isErrorID(int)
 
- 
waitForIDpublic boolean waitForID(int id, long ms) throws InterruptedExceptionこのメディア・トラッカによって監視される、指定された識別子を持つすべてのイメージのロードを開始します。 このメソッドは、指定された識別子を持つすべてのイメージのロードが完了するまでか、ms引数によりミリ秒単位で指定した時間が経過するまで待機します。イメージのロードまたはスケーリング中にエラーが発生すると、そのイメージのロードは完了したと見なされます。 エラーをチェックするには、 statusID、isErrorID、およびisErrorAnyメソッドを使用します。- パラメータ:
- id- チェックするイメージの識別子
- ms- ロードの完了を待機する時間(ミリ秒)
- 戻り値:
- ロードが時間内に完了した場合はtrue;そうでなければfalse
- 例外:
- InterruptedException- スレッドがこのスレッドに割り込んだ場合。
- 関連項目:
- waitForAll(),- waitForID(int),- statusID(int, boolean),- isErrorAny(),- isErrorID(int)
 
- 
statusIDpublic int statusID(int id, boolean load)このメディア・トラッカによって追跡される指定された識別子を持つすべてのメディアのステータスのビット単位の論理ORを計算して返します。MediaTrackerクラスによって定義される可能性のあるフラグは、LOADING、ABORTED、ERRORED、およびCOMPLETEです。 ロードを開始していないイメージの状態はゼロで表されます。loadの値がtrueである場合、このメソッドは、まだロードされていないすべてのイメージのロードを開始します。- パラメータ:
- id- チェックするイメージの識別子
- load-- trueの場合は、まだロードされていないすべてのイメージのロードを開始する
- 戻り値:
- 指定された識別子を持つ監視中のすべてのメディアの状態のビット単位の論理OR
- 関連項目:
- statusAll(boolean),- LOADING,- ABORTED,- ERRORED,- COMPLETE
 
- 
removeImagepublic void removeImage(Image image)指定されたイメージをこのメディア・トラッカから削除します。 指定されたイメージのすべてのインスタンスは、スケールまたはIDとは無関係に削除されます。- パラメータ:
- image- 削除されるイメージ
- 導入されたバージョン:
- 1.1
- 関連項目:
- removeImage(java.awt.Image, int),- removeImage(java.awt.Image, int, int, int)
 
- 
removeImagepublic void removeImage(Image image, int id)このメディア・トラッカの指定された監視IDから指定されたイメージを削除します。 指定されたIDのもとで監視中のImageのすべてのインスタンスは、スケールとは無関係に削除されます。- パラメータ:
- image- 削除されるイメージ
- id- イメージの削除元の監視ID
- 導入されたバージョン:
- 1.1
- 関連項目:
- removeImage(java.awt.Image),- removeImage(java.awt.Image, int, int, int)
 
- 
removeImagepublic void removeImage(Image image, int id, int width, int height)指定された幅、高さ、IDを持つ指定されたイメージをこのメディア・トラッカから削除します。 指定されたインスタンス(重複を持つもの)だけが削除されます。- パラメータ:
- image- 削除されるイメージ
- id- イメージの削除元の監視ID
- width- 削除する幅(スケーリングされていない場合は -1)
- height- 削除する高さ(スケーリングされていない場合は -1)
- 導入されたバージョン:
- 1.1
- 関連項目:
- removeImage(java.awt.Image),- removeImage(java.awt.Image, int)
 
 
-