public class MediaTracker extends Object implements Serializable
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.Modifier and Type | Field and Description |
---|---|
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 and Description |
---|
MediaTracker(Component c)
Constructs a new MediaTracker for the component
c . |
Modifier and Type | Method and Description |
---|---|
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()
|
boolean |
checkAll(boolean load)
|
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.
|
public static final int LOADING
public static final int ABORTED
public static final int ERRORED
public static final int COMPLETE
public MediaTracker(Component c)
c
. The
component should be the component that uses the media (i.e. draws it).c
- the Component that wants to use the mediapublic void addImage(Image image, int id)
ID
.image
- the image to be addedid
- the ID of the tracker list to which the image is addedpublic void addImage(Image image, int id, int width, int height)
ID
.
The image is expected to be rendered with the specified width and
height.image
- the image to be addedid
- the ID of the tracker list to which the image is addedwidth
- the width of the imageheight
- the height of the imagepublic boolean checkAll()
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)
.public boolean checkAll(boolean load)
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.load
- if true
this method starts loading objects
that are not already loadingpublic boolean isErrorAny()
true
if at least one media object has encountered
an error during loading, false
otherwisepublic Object[] getErrorsAny()
null
if there were no errors at allpublic void waitForAll() throws InterruptedException
InterruptedException
- if another thread interrupted the
current thread while waitingpublic boolean waitForAll(long ms) throws InterruptedException
ms
milliseconds. If the
media objects have not completed loading within this timeframe, this
method returns false
, otherwise true
.ms
- timeframe in milliseconds to wait for the media objects to
finishtrue
if all media objects have successfully loaded
within the timeframe, false
otherwiseInterruptedException
- if another thread interrupted the
current thread while waitingpublic int statusAll(boolean load)
load
is true
then media objects that
are not already loading will be started to load.load
- if set to true
then media objects that are
not already loading are startedpublic boolean checkID(int id)
ID
have completed loading.id
- the ID of the media objects to checktrue
if all media objects with ID
have successfully finishedpublic boolean checkID(int id, boolean load)
ID
have completed loading.
If load
is true
then media objects that
are not already loading will be started to load.id
- the ID of the media objects to checkload
- if set to true
then media objects that are
not already loading are startedtrue
if all media objects with ID
have successfully finishedpublic boolean isErrorID(int id)
true
if any of the media objects with ID
have encountered errors during loading, false otherwise.id
- the ID of the media objects to checktrue
if any of the media objects with ID
have encountered errors during loading, false otherwisepublic Object[] getErrorsID(int id)
id
- the ID of the media objects to checkpublic void waitForID(int id) throws InterruptedException
id
- the ID of the media objects to wait forInterruptedException
- if another thread interrupted the
current thread while waitingpublic boolean waitForID(int id, long ms) throws InterruptedException
ms
milliseconds. If the
media objects have not completed loading within this timeframe, this
method returns false
, otherwise true
.id
- the ID of the media objects to wait forms
- timeframe in milliseconds to wait for the media objects to
finishtrue
if all media objects have successfully loaded
within the timeframe, false
otherwiseInterruptedException
- if another thread interrupted the
current thread while waitingpublic int statusID(int id, boolean load)
load
is true
then media objects that
are not already loading will be started to load.load
- if set to true
then media objects that are
not already loading are startedpublic void removeImage(Image image)
image
- the image to be removedpublic void removeImage(Image image, int id)
image
- the image to be removedpublic void removeImage(Image image, int id, int width, int height)
image
- the image to be removed