java.awt

Class MediaTracker

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 ({@link #statusID}) and error flag (@link #isErrorID} and {@link #getErrorsID}) 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.
Field Summary
static intABORTED
Indicates that the loading operation has been aborted.
static intCOMPLETE
Indicates that the media has been successfully and completely loaded.
static intERRORED
Indicates that an error has occured during loading of the media.
static intLOADING
Indicates that the media is still loading.
Constructor Summary
MediaTracker(Component c)
Constructs a new MediaTracker for the component c.
Method Summary
voidaddImage(Image image, int id)
Adds an image to the tracker with the specified ID.
voidaddImage(Image image, int id, int width, int height)
Adds an image to the tracker with the specified ID.
booleancheckAll()
Checks if all media objects have finished loading, i.e. are {@link #COMPLETE}, {@link #ABORTED} or {@link #ERRORED}.
booleancheckAll(boolean load)
Checks if all media objects have finished loading, i.e. are {@link #COMPLETE}, {@link #ABORTED} or {@link #ERRORED}.
booleancheckID(int id)
Checks if the media objects with ID have completed loading.
booleancheckID(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.
booleanisErrorAny()
Checks if any of the registered media objects has encountered an error during loading.
booleanisErrorID(int id)
Returns true if any of the media objects with ID have encountered errors during loading, false otherwise.
voidremoveImage(Image image)
Removes an image from this MediaTracker.
voidremoveImage(Image image, int id)
Removes an image with the specified ID from this MediaTracker.
voidremoveImage(Image image, int id, int width, int height)
Removes an image with the specified ID and scale from this MediaTracker.
intstatusAll(boolean load)
Returns the status flags of all registered media objects ORed together.
intstatusID(int id, boolean load)
Returns the status flags of the media objects with the specified ID ORed together.
voidwaitForAll()
Waits for all media objects to finish loading, either by completing successfully or by aborting or encountering an error.
booleanwaitForAll(long ms)
Waits for all media objects to finish loading, either by completing successfully or by aborting or encountering an error.
voidwaitForID(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.
booleanwaitForID(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.

Field Detail

ABORTED

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

COMPLETE

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

ERRORED

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

LOADING

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

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 {@link #COMPLETE}, {@link #ABORTED} or {@link #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 {@link #COMPLETE}, {@link #ABORTED} or {@link #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.

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

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

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

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

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

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

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

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

waitForAll

public void waitForAll()
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)
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

waitForID

public 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.

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)
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