当前位置 类层次(JDK) 所有类(JDK) 所有域和方法(JDK)

类 java.awt.MediaTracker

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

public class MediaTracker
extends Object
implements Serializable

MediaTracker 是一个实用工具类,跟踪多种媒体对象的状态。媒体对象包括声音和图象,但当前仅支持图象。

为了使用媒体跟踪器,创建 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;
	// 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 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);
	    }
	}
 }
 


变量索引

ABORTED
指示某些媒体的下载异常终止的标志。
COMPLETE
指示媒体的下载操作完全成功的标志。
ERRORED
指示在媒体的下载操作过程中出现错误的标志。
LOADING
指示当前正下载一些媒体的标志。

构造子索引

MediaTracker(Component)
创建一个媒体跟踪器,跟踪给定组件的图象。

方法索引

addImage(Image, int)
向当前媒体跟踪器跟踪的图象列表,添加一图象。
addImage(Image, int, int, int)
向当前媒体跟踪器跟踪的图象列表,添加一比例图象。
checkAll()
检测此媒体跟踪器跟踪的所有图象是否已全被载入。
checkAll(boolean)
检测此媒体跟踪器跟踪的所有图象是否已全被载入。
checkID(int)
检测此媒体跟踪器跟踪的所有的、带指定标识符的图象是否已全被载入。
checkID(int, boolean)
检测此媒体跟踪器跟踪的所有的、带指定标识符的图象是否已全被载入。
getErrorsAny()
返回出现错误的所有媒体列表。
getErrorsID(int)
返回出现错误的所有的指定标识符的媒体列表。
isErrorAny()
检测所有图象的错误状态。
isErrorID(int)
检测此媒体跟踪器跟踪的所有的指定标识符的图象的错误状态。
removeImage(Image)
从媒体跟踪器中删除指定图象。
removeImage(Image, int)
从媒体跟踪器中删除指定跟踪的标识符的图象。
removeImage(Image, int, int, int)
从媒体跟踪器中删除指定宽、高和标识符的图象。
statusAll(boolean)
计算且返回媒体跟踪器跟踪的所有媒体的状态的与或位运算结果。
statusID(int, boolean)
计算且返回媒体跟踪器跟踪的所有指定标识符的媒体的状态的与或位运算结果。
waitForAll()
开始加载媒体跟踪器跟踪的所有图象。
waitForAll(long)
开始加载媒体跟踪器跟踪的所有图象。
waitForID(int)
开始加载媒体跟踪器跟踪的所有指定标识符的图象。
waitForID(int, long)
开始加载媒体跟踪器跟踪的所有指定标识符的图象。

变量

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)
创建一个媒体跟踪器,跟踪给定组件的图象。

参数:
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()
检测此媒体跟踪器跟踪的所有图象是否已全被载入。

如果它们已被载入,此方法将不再开始装载。

如果装载或按比例缩放图象时发生错误,则认为此图象装载完毕。使用 isErrorAnyisErrorID 方法以检测错误。

返回值:
如果所有的图象已被载入、被放弃或在装载过程出现错误,则为 true,否则为 false
参见:
checkAll, checkID, isErrorAny, isErrorID
checkAll
 public boolean checkAll(boolean load)
检测此跟踪器跟踪的所有图象是否已全被载入。

如果 load 标志的值为 true,那么此方法开始装载任何没有载入的图象。

如果装载或按比例缩放图象时发生错误,那么认为此图象已装载完毕。 使用 isErrorAnyisErrorID 方法以检测错误。

参数:
load - 如果为 true, 那么开始装载任何没有载入的图象。
返回值:
如果所有的图象已被载入、被放弃或在装载过程出现错误,则为 true,否则为 false
参见:
checkID, checkAll, isErrorAny, isErrorID
isErrorAny
 public synchronized boolean isErrorAny()
检测所有图象的错误状态。

返回值:
如果在装载媒体跟踪器跟踪的任一图象的过程中均发生错误则为 true,否则为 false
参见:
isErrorID, getErrorsAny
getErrorsAny
 public synchronized Object[] getErrorsAny()
返回出现错误的所有媒体列表。

返回值:
媒体跟踪器跟踪的发生错误的一个媒体对象数组,若没有错误则为 null
参见:
isErrorAny, getErrorsID
waitForAll
 public void waitForAll() throws InterruptedException
开始加载媒体跟踪器跟踪的所有图象。 此方法将处于等候状态,直到装载完所有跟踪的图象。

如果装载或按比例缩放图象时发生错误,则认为此图象已装载完毕。使用 isErrorAnyisErrorID 方法以检测错误。

抛出: InterruptedException
如果另一个线程已中断了该线程。
参见:
waitForID, waitForAll, isErrorAny, isErrorID
waitForAll
 public synchronized boolean waitForAll(long ms) throws InterruptedException
开始加载媒体跟踪器跟踪的所有图象。 该方法将处于等候状态,直到装载完所有跟踪的图象,或者是超过以微秒为单位的 ms 参数指定的时间值。

如果装载或按比例缩放图象时发生错误,则认为此图象装载完毕。 使用 isErrorAnyisErrorID 方法以检测错误。

参数:
ms - 等待装载完成的微秒数。
返回值:
如果成功载入所有的图象则为 true,否则为 false
抛出: InterruptedException
如果另一个线程已中断了该线程。
参见:
waitForID, waitForAll, isErrorAny, isErrorID
statusAll
 public int statusAll(boolean load)
计算且返回媒体跟踪器跟踪的所有媒体的状态的与或位运算结果。

MediaTracker 类定义的标志可为 LOADING, ABORTED, ERROREDCOMPLETE 。 未开始装载的图象状态标志为零。

如果 loadtrue, 那么开始装载任何没有载入的图象。

参数:
load - 如果为 true, 那么开始装载任何没有载入的图象。
返回值:
跟踪的所有媒体的状态的与或位运算结果。
参见:
statusID, LOADING, ABORTED, ERRORED, COMPLETE
checkID
 public boolean checkID(int id)
检测此跟踪器跟踪的所有的、带指定标识符的图象是否已全被载入。

如果它们已被载入,此方法将不再开始装载。

如果装载或按比例缩放图象时发生错误,则认为此图象已装载完毕。使用 isErrorAnyisErrorID 方法以检测错误。

参数:
id - 待检测的图象的标识符。
返回值:
如果所有的图象已被载入、被放弃或在装载过程出现错误,则为true,否则为 false
参见:
checkID, checkAll, isErrorAny, isErrorID
checkID
 public boolean checkID(int id,
                        boolean load)
检测此跟踪器跟踪的所有的、带指定标识符的图象是否已全被载入。

如果 load 标志的值为 true,那么此方法开始装载任何没有载入的图象。

如果装载或按比例缩放图象时发生错误,则认为此图象已装载完毕。使用 isErrorAnyisErrorID 方法以检测错误。

参数:
id - 待检测的图象的标识符。
load - 如果为 true, 那么开始装载任何没有载入的图象。
返回值:
如果所有的图象已被载入,被放弃或在装载过程出现错误,则为 true,否则为 false
参见:
checkID, checkAll, isErrorAny, isErrorID
isErrorID
 public synchronized boolean isErrorID(int id)
检测此跟踪器跟踪的所有指定标识符的图象的错误状态。

参数:
id - 待检测的图象的标识符。
返回值:
如果指定标识符的任一图象的装载过程均发生错误则为 true,否则为 false
参见:
isErrorAny, getErrorsID
getErrorsID
 public synchronized Object[] getErrorsID(int id)
返回出现错误的所有的指定标识符的媒体列表。

参数:
id - 待检测的图象的标识符。
返回值:
媒体跟踪器用指定标识符跟踪的发生错误的一个媒体对象数组,若没有错误则为 null
参见:
isErrorID, isErrorAny, getErrorsAny
waitForID
 public void waitForID(int id) throws InterruptedException
开始加载指定标识符的媒体跟踪器跟踪的所有图象。 此方法将处于等候状态,直到装载完所有指定标识符的图象。

如果装载或按比例缩放图象时发生错误,则认为此图象已装载完毕。使用 isErrorAnyisErrorID 方法以检测错误。

参数:
id - 待检测的图象的标识符。
抛出: InterruptedException
如果另一个线程已中断了该线程。
参见:
waitForAll, isErrorAny, isErrorID
waitForID
 public synchronized boolean waitForID(int id,
                                       long ms) throws InterruptedException
开始加载指定标识符的媒体跟踪器跟踪的所有图象。 该方法将处于等候状态,直到装载完指定标识符的所有图象,或者是超过以微秒为单位的 ms 参数指定的时间值。

如果装载或按比例缩放图象时发生错误,则认为此图象已装载完毕。使用 statusID, isErrorIDisErrorAny 方法来检测错误。

参数:
id - 待检测的图象的标识符。
ms - 等待装载完成的微秒时间值。
抛出: InterruptedException
如果另一个线程已中断了该线程。
参见:
waitForAll, waitForID, statusID, isErrorAny, isErrorID
statusID
 public int statusID(int id,
                     boolean load)
计算且返回媒体跟踪器跟踪的所有指定标识符的媒体的状态的与或位运算结果。

MediaTracker 类定义的标志可为 LOADING, ABORTED, ERROREDCOMPLETE 。 未开始装载的图象状态标志为零。

如果 loadtrue, 那么开始装载任何没有载入的图象。

参数:
id - 待检测的图象的标识符。
load - 如果为 true, 那么开始装载任何没有载入的图象。
返回值:
用指定标识符跟踪的所有媒体的状态的与或位运算结果。
参见:
statusAll, LOADING, ABORTED, ERRORED, COMPLETE
removeImage
 public synchronized void removeImage(Image image)
从媒体跟踪器中删除指定图象。 不管指定的是比例图象,还是 ID 图象,均删除它们的所有实例。

参数:
image - 删除的图象。
参见:
removeImage, removeImage
removeImage
 public synchronized void removeImage(Image image,
                                      int id)
从媒体跟踪器中删除指定跟踪的标识符的图象。 无论图象是否为比例,均删除用指定标识符跟踪的 Image 的所有实例。

参数:
image - 删除的图象。
id - 删除图象的跟踪标识符。
参见:
removeImage, removeImage
removeImage
 public synchronized void removeImage(Image image,
                                      int id,
                                int width,
                           int height)
从媒体跟踪器中删除指定宽、高和标识符的图象。 仅删除指定实例(具有任一复制品)。

参数:
image - 删除的图象。
id - 删除图象的跟踪标识符。
width - 删除图象的宽度 (非比例图象为 -1)。
height - 删除图象的高度 (非比例图象为 -1)。
参见:
removeImage, removeImage

当前位置 类层次(JDK) 所有类(JDK) 所有域和方法(JDK)