java.awt
Class MediaTracker

java.lang.Object
  extended by java.awt.MediaTracker
All Implemented Interfaces:
Serializable

public class MediaTracker
extends Object
implements Serializable

This class is used for keeping track of the status of various media objects. Media objects are tracked by assigning them an ID. It is possible to assign the same ID to mutliple objects, effectivly grouping them together. In this case the status flags (statusID(int, boolean)) and error flag (@link #isErrorID} and getErrorsID(int)) are ORed together. This means that you cannot say exactly which media object has which status, at most you can say that there are certain media objects with some certain status. At the moment only images are supported by this class.

See Also:
Serialized Form

Field Summary
static int ABORTED
          Indicates that the loading operation has been aborted.
static int COMPLETE
          Indicates that the media has been successfully and completely loaded.
static int ERRORED
          Indicates that an error has occured during loading of the media.
static int LOADING
          Indicates that the media is still loading.
 
Constructor Summary
MediaTracker(Component c)
          Constructs a new MediaTracker for the component c.
 
Method Summary
 void addImage(Image image, int id)
          Adds an image to the tracker with the specified ID.
 void addImage(Image image, int id, int width, int height)
          Adds an image to the tracker with the specified ID.
 boolean checkAll()
          Checks if all media objects have finished loading, i.e. are COMPLETE, ABORTED or ERRORED.
 boolean checkAll(boolean load)
          Checks if all media objects have finished loading, i.e. are COMPLETE, ABORTED or ERRORED.
 boolean checkID(int id)
          Checks if the media objects with ID have completed loading.
 boolean checkID(int id, boolean load)
          Checks if the media objects with ID have completed loading.
 Object[] getErrorsAny()
          Returns all media objects that have encountered errors during loading.
 Object[] getErrorsID(int id)
          Returns all media objects with the specified ID that have encountered an error.
 boolean isErrorAny()
          Checks if any of the registered media objects has encountered an error during loading.
 boolean isErrorID(int id)
          Returns true if any of the media objects with ID have encountered errors during loading, false otherwise.
 void removeImage(Image image)
          Removes an image from this MediaTracker.
 void removeImage(Image image, int id)
          Removes an image with the specified ID from this MediaTracker.
 void removeImage(Image image, int id, int width, int height)
          Removes an image with the specified ID and scale from this MediaTracker.
 int statusAll(boolean load)
          Returns the status flags of all registered media objects ORed together.
 int statusID(int id, boolean load)
          Returns the status flags of the media objects with the specified ID ORed together.
 void waitForAll()
          Waits for all media objects to finish loading, either by completing successfully or by aborting or encountering an error.
 boolean waitForAll(long ms)
          Waits for all media objects to finish loading, either by completing successfully or by aborting or encountering an error.
 void waitForID(int id)
          Waits for all media objects with the specified ID to finish loading, either by completing successfully or by aborting or encountering an error.
 boolean waitForID(int id, long ms)
          Waits for all media objects with the specified ID to finish loading, either by completing successfully or by aborting or encountering an error.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

LOADING

public static final int LOADING
Indicates that the media is still loading.

See Also:
Constant Field Values

ABORTED

public static final int ABORTED
Indicates that the loading operation has been aborted.

See Also:
Constant Field Values

ERRORED

public static final int ERRORED
Indicates that an error has occured during loading of the media.

See Also:
Constant Field Values

COMPLETE

public static final int COMPLETE
Indicates that the media has been successfully and completely loaded.

See Also:
Constant Field Values
Constructor Detail

MediaTracker

public MediaTracker(Component c)
Constructs a new MediaTracker for the component c. The component should be the component that uses the media (i.e. draws it).

Parameters:
c - the Component that wants to use the media
Method Detail

addImage

public void addImage(Image image,
                     int id)
Adds an image to the tracker with the specified ID.

Parameters:
image - the image to be added
id - the ID of the tracker list to which the image is added

addImage

public void addImage(Image image,
                     int id,
                     int width,
                     int height)
Adds an image to the tracker with the specified ID. The image is expected to be rendered with the specified width and height.

Parameters:
image - the image to be added
id - the ID of the tracker list to which the image is added
width - the width of the image
height - the height of the image

checkAll

public boolean checkAll()
Checks if all media objects have finished loading, i.e. are COMPLETE, ABORTED or ERRORED. If the media objects are not already loading, a call to this method does not start loading. This is equivalent to a call to checkAll(false).

Returns:
if all media objects have finished loading either by beeing complete, have been aborted or errored.

checkAll

public boolean checkAll(boolean load)
Checks if all media objects have finished loading, i.e. are COMPLETE, ABORTED or ERRORED. If the media objects are not already loading, and load is true then a call to this method starts loading the media objects.

Parameters:
load - if true this method starts loading objects that are not already loading
Returns:
if all media objects have finished loading either by beeing complete, have been aborted or errored.

isErrorAny

public boolean isErrorAny()
Checks if any of the registered media objects has encountered an error during loading.

Returns:
true if at least one media object has encountered an error during loading, false otherwise

getErrorsAny

public Object[] getErrorsAny()
Returns all media objects that have encountered errors during loading.

Returns:
an array of all media objects that have encountered errors or null if there were no errors at all

waitForAll

public void waitForAll()
                throws InterruptedException
Waits for all media objects to finish loading, either by completing successfully or by aborting or encountering an error.

Throws:
InterruptedException - if another thread interrupted the current thread while waiting

waitForAll

public boolean waitForAll(long ms)
                   throws InterruptedException
Waits for all media objects to finish loading, either by completing successfully or by aborting or encountering an error. This method waits at most ms milliseconds. If the media objects have not completed loading within this timeframe, this method returns false, otherwise true.

Parameters:
ms - timeframe in milliseconds to wait for the media objects to finish
Returns:
true if all media objects have successfully loaded within the timeframe, false otherwise
Throws:
InterruptedException - if another thread interrupted the current thread while waiting

statusAll

public int statusAll(boolean load)
Returns the status flags of all registered media objects ORed together. If load is true then media objects that are not already loading will be started to load.

Parameters:
load - if set to true then media objects that are not already loading are started
Returns:
the status flags of all tracked media objects ORed together

checkID

public boolean checkID(int id)
Checks if the media objects with ID have completed loading.

Parameters:
id - the ID of the media objects to check
Returns:
true if all media objects with ID have successfully finished

checkID

public boolean checkID(int id,
                       boolean load)
Checks if the media objects with ID have completed loading. If load is true then media objects that are not already loading will be started to load.

Parameters:
id - the ID of the media objects to check
load - if set to true then media objects that are not already loading are started
Returns:
true if all media objects with ID have successfully finished

isErrorID

public boolean isErrorID(int id)
Returns true if any of the media objects with ID have encountered errors during loading, false otherwise.

Parameters:
id - the ID of the media objects to check
Returns:
true if any of the media objects with ID have encountered errors during loading, false otherwise

getErrorsID

public Object[] getErrorsID(int id)
Returns all media objects with the specified ID that have encountered an error.

Parameters:
id - the ID of the media objects to check
Returns:
an array of all media objects with the specified ID that have encountered an error

waitForID

public void waitForID(int id)
               throws InterruptedException
Waits for all media objects with the specified ID to finish loading, either by completing successfully or by aborting or encountering an error.

Parameters:
id - the ID of the media objects to wait for
Throws:
InterruptedException - if another thread interrupted the current thread while waiting

waitForID

public boolean waitForID(int id,
                         long ms)
                  throws InterruptedException
Waits for all media objects with the specified ID to finish loading, either by completing successfully or by aborting or encountering an error. This method waits at most ms milliseconds. If the media objects have not completed loading within this timeframe, this method returns false, otherwise true.

Parameters:
id - the ID of the media objects to wait for
ms - timeframe in milliseconds to wait for the media objects to finish
Returns:
true if all media objects have successfully loaded within the timeframe, false otherwise
Throws:
InterruptedException - if another thread interrupted the current thread while waiting

statusID

public int statusID(int id,
                    boolean load)
Returns the status flags of the media objects with the specified ID ORed together. If load is true then media objects that are not already loading will be started to load.

Parameters:
load - if set to true then media objects that are not already loading are started
Returns:
the status flags of all tracked media objects ORed together

removeImage

public void removeImage(Image image)
Removes an image from this MediaTracker.

Parameters:
image - the image to be removed

removeImage

public void removeImage(Image image,
                        int id)
Removes an image with the specified ID from this MediaTracker.

Parameters:
image - the image to be removed

removeImage

public void removeImage(Image image,
                        int id,
                        int width,
                        int height)
Removes an image with the specified ID and scale from this MediaTracker.

Parameters:
image - the image to be removed