Spec-Zone .ru
спецификации, руководства, описания, API
|
public class MediaTracker extends Object implements Serializable
MediaTracker
class является утилитой class, чтобы отследить состояние многих объектов носителей. Объекты носителей могли включать аудиоклипы так же как изображения, хотя в настоящий момент только изображения поддерживаются. Чтобы использовать средство отслеживания носителей, создайте экземпляр MediaTracker
и вызовите addImage
метод для каждого изображения, которое будет прослежено. Кроме того, каждое изображение может быть присвоено уникальный идентификатор. Этот идентификатор управляет первоочередным заказом, в котором выбираются изображения. Это может также использоваться, чтобы идентифицировать уникальные подмножества изображений, на которых можно ожидать независимо. Изображения с более низким ID загружаются в предпочтении к тем с более высоким Идентификационным номером.
Отслеживание изображения с анимацией не могло бы всегда быть полезным из-за многослойной природы загрузки изображения с анимацией и рисования, но это поддерживается. MediaTracker
обрабатывает изображение с анимацией как полностью загружено, когда первый фрейм полностью загружается. В той точке, MediaTracker
сигналы любые официанты, что изображение полностью загружается. Если нет ImageObserver
s наблюдают изображение, когда первый фрейм закончил загружаться, изображение могло бы сбросить себя, чтобы сохранить ресурсы (см. 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); } } }
Модификатор и Тип | Поле и Описание |
---|---|
static int |
ПРЕРВАННЫЙ
Флаг, указывающий, что загрузка носителей была прервана.
|
static int |
ПОЛНЫЙ
Флаг, указывающий, что загрузка носителей была завершена успешно.
|
static int |
С ОШИБКАМ
Флаг, указывающий, что загрузка носителей, с которыми встречаются ошибка.
|
static int |
ЗАГРУЗКА
Флаг, указывающий, что носители в настоящий момент загружаются.
|
Конструктор и Описание |
---|
MediaTracker(Component comp)
Создает средство отслеживания носителей, чтобы отследить изображения для данного компонента.
|
Модификатор и Тип | Метод и Описание |
---|---|
void |
addImage(Image image, int id)
Добавляет изображение к списку изображений, прослеживаемых этим средством отслеживания носителей.
|
void |
addImage(Image image, int id, int w, int h)
Добавляет масштабируемое изображение к списку изображений, прослеживаемых этим средством отслеживания носителей.
|
boolean |
checkAll()
Проверки, чтобы видеть, закончили ли все изображения, прослеживаемые этим средством отслеживания носителей, загружаться.
|
boolean |
checkAll(boolean load)
Проверки, чтобы видеть, закончили ли все изображения, прослеживаемые этим средством отслеживания носителей, загружаться.
|
boolean |
checkID(int id)
Проверки, чтобы видеть, закончили ли все изображения, прослеженные этим средством отслеживания носителей, которые тегируются с указанным идентификатором, загружаться.
|
boolean |
checkID(int id, boolean load)
Проверки, чтобы видеть, закончили ли все изображения, прослеженные этим средством отслеживания носителей, которые тегируются с указанным идентификатором, загружаться.
|
Объект[] |
getErrorsAny()
Возвращает список всех носителей, которые встретились с ошибкой.
|
Объект[] |
getErrorsID(int id)
Возвращает список носителей с указанным ID, которые встретились с ошибкой.
|
boolean |
isErrorAny()
Проверяет ошибочное состояние всех изображений.
|
boolean |
isErrorID(int id)
Проверяет ошибочное состояние всех изображений, прослеженных этим средством отслеживания носителей с указанным идентификатором.
|
void |
removeImage(Image image)
Удаляет указанное изображение из этого средства отслеживания носителей.
|
void |
removeImage(Image image, int id)
Удаляет указанное изображение из указанного ID отслеживания этого средства отслеживания носителей.
|
void |
removeImage(Image image, int id, int width, int height)
Удаляет указанное изображение с указанным width, height, и ID от этого средства отслеживания носителей.
|
int |
statusAll(boolean load)
Вычисляет и возвращает поразрядное содержащее ИЛИ состояния всех носителей, которые прослеживаются этим средством отслеживания носителей.
|
int |
statusID(int id, boolean load)
Вычисляет и возвращает поразрядное содержащее ИЛИ состояния всех носителей с указанным идентификатором, которые прослеживаются этим средством отслеживания носителей.
|
void |
waitForAll()
Начинает загружать все изображения, прослеженные этим средством отслеживания носителей.
|
boolean |
waitForAll(long ms)
Начинает загружать все изображения, прослеженные этим средством отслеживания носителей.
|
void |
waitForID(int id)
Начинает загружать все изображения, прослеженные этим средством отслеживания носителей с указанным идентификатором.
|
boolean |
waitForID(int id, long ms)
Начинает загружать все изображения, прослеженные этим средством отслеживания носителей с указанным идентификатором.
|
public static final int LOADING
public static final int ABORTED
public static final int ERRORED
public static final int COMPLETE
public MediaTracker(Component comp)
comp
- компонент, на котором будут в конечном счете оттянуты изображенияpublic void addImage(Image image, int id)
image
- изображение, которое будет прослеженоid
- идентификатор, используемый, чтобы отследить это изображениеpublic void addImage(Image image, int id, int w, int h)
image
- изображение, которое будет прослеженоid
- идентификатор, который может использоваться, чтобы отследить это изображениеw
- width, в котором представляется изображениеh
- height, в котором представляется изображениеpublic boolean checkAll()
Этот метод не начинает загружать изображения, если они уже не загружаются.
Если есть ошибка, загружаясь или масштабируя изображение, то то изображение, как полагают, закончило загружаться. Используйте isErrorAny
или isErrorID
методы, чтобы проверить на ошибки.
true
если все изображения закончили загружаться, были прерваны, или встретились с ошибкой; false
иначеcheckAll(boolean)
, checkID(int)
, isErrorAny()
, isErrorID(int)
public boolean checkAll(boolean load)
Если значение load
флаг true
, тогда этот метод начинает загружать любые изображения, которые еще не загружаются.
Если есть ошибка, загружаясь или масштабируя изображение, то изображение, как полагают, закончило загружаться. Используйте isErrorAny
и isErrorID
методы, чтобы проверить на ошибки.
load
- если true
, начните загружать любые изображения, которые еще не загружаютсяtrue
если все изображения закончили загружаться, были прерваны, или встретились с ошибкой; false
иначеcheckID(int)
, checkAll()
, isErrorAny()
, isErrorID(int)
public boolean isErrorAny()
true
если у какого-либо из изображений, прослеженных этим средством отслеживания носителей, была ошибка во время загрузки; false
иначеisErrorID(int)
, getErrorsAny()
public Object[] getErrorsAny()
null
если нет ни одного с ошибкамиisErrorAny()
, getErrorsID(int)
public void waitForAll() throws InterruptedException
Если есть ошибка, загружаясь или масштабируя изображение, то то изображение, как полагают, закончило загружаться. Используйте isErrorAny
или isErrorID
методы, чтобы проверить на ошибки.
InterruptedException
- если какой-либо поток прервал этот потокwaitForID(int)
, waitForAll(long)
, isErrorAny()
, isErrorID(int)
public boolean waitForAll(long ms) throws InterruptedException
ms
параметр передал. Если есть ошибка, загружаясь или масштабируя изображение, то то изображение, как полагают, закончило загружаться. Используйте isErrorAny
или isErrorID
методы, чтобы проверить на ошибки.
ms
- число миллисекунд, чтобы ожидать загрузки, чтобы завершитьсяtrue
если все изображения были успешно загружены; false
иначеInterruptedException
- если какой-либо поток прервал этот поток.waitForID(int)
, waitForAll(long)
, isErrorAny()
, isErrorID(int)
public int statusAll(boolean load)
Возможные флаги, определенные MediaTracker
class LOADING
, ABORTED
, ERRORED
, и COMPLETE
. У изображения, которое не начало загружаться, есть нуль как его состояние.
Если значение load
true
, тогда этот метод начинает загружать любые изображения, которые еще не загружаются.
load
- если true
, начните загружать любые изображения, которые еще не загружаютсяstatusID(int, boolean)
, LOADING
, ABORTED
, ERRORED
, COMPLETE
public boolean checkID(int id)
Этот метод не начинает загружать изображения, если они уже не загружаются.
Если есть ошибка, загружаясь или масштабируя изображение, то то изображение, как полагают, закончило загружаться. Используйте isErrorAny
или isErrorID
методы, чтобы проверить на ошибки.
id
- идентификатор изображений, чтобы проверитьtrue
если все изображения закончили загружаться, были прерваны, или встретились с ошибкой; false
иначеcheckID(int, boolean)
, checkAll()
, isErrorAny()
, isErrorID(int)
public boolean checkID(int id, boolean load)
Если значение load
флаг true
, тогда этот метод начинает загружать любые изображения, которые еще не загружаются.
Если есть ошибка, загружаясь или масштабируя изображение, то то изображение, как полагают, закончило загружаться. Используйте isErrorAny
или isErrorID
методы, чтобы проверить на ошибки.
id
- идентификатор изображений, чтобы проверитьload
- если true
, начните загружать любые изображения, которые еще не загружаютсяtrue
если все изображения закончили загружаться, были прерваны, или встретились с ошибкой; false
иначеcheckID(int, boolean)
, checkAll()
, isErrorAny()
, isErrorID(int)
public boolean isErrorID(int id)
id
- идентификатор изображений, чтобы проверитьtrue
если у какого-либо из изображений с указанным идентификатором была ошибка во время загрузки; false
иначеisErrorAny()
, getErrorsID(int)
public Object[] getErrorsID(int id)
id
- идентификатор изображений, чтобы проверитьnull
если нет ни одного с ошибкамиisErrorID(int)
, isErrorAny()
, getErrorsAny()
public void waitForID(int id) throws InterruptedException
Если есть ошибка, загружаясь или масштабируя изображение, то то изображение, как полагают, закончило загружаться. Используйте isErrorAny
и isErrorID
методы, чтобы проверить на ошибки.
id
- идентификатор изображений, чтобы проверитьInterruptedException
- если какой-либо поток прервал этот поток.waitForAll()
, isErrorAny()
, isErrorID(int)
public boolean waitForID(int id, long ms) throws InterruptedException
ms
параметр передал. Если есть ошибка, загружаясь или масштабируя изображение, то то изображение, как полагают, закончило загружаться. Используйте statusID
, isErrorID
, и isErrorAny
методы, чтобы проверить на ошибки.
id
- идентификатор изображений, чтобы проверитьms
- отрезок времени, в миллисекундах, чтобы ожидать загрузки, чтобы завершитьсяInterruptedException
- если какой-либо поток прервал этот поток.waitForAll()
, waitForID(int)
, statusID(int, boolean)
, isErrorAny()
, isErrorID(int)
public int statusID(int id, boolean load)
Возможные флаги, определенные MediaTracker
class LOADING
, ABORTED
, ERRORED
, и COMPLETE
. У изображения, которое не начало загружаться, есть нуль как его состояние.
Если значение load
true
, тогда этот метод начинает загружать любые изображения, которые еще не загружаются.
id
- идентификатор изображений, чтобы проверитьload
- если true
, начните загружать любые изображения, которые еще не загружаютсяstatusAll(boolean)
, LOADING
, ABORTED
, ERRORED
, COMPLETE
public void removeImage(Image image)
image
- изображение, которое будет удаленоremoveImage(java.awt.Image, int)
, removeImage(java.awt.Image, int, int, int)
public void removeImage(Image image, int id)
Image
быть прослеженным под указанным ID удаляется независимо от масштаба.image
- изображение, которое будет удаленоid
- ID отслеживания frrom, чтобы удалить изображениеremoveImage(java.awt.Image)
, removeImage(java.awt.Image, int, int, int)
public void removeImage(Image image, int id, int width, int height)
image
- изображение, которое будет удаленоid
- ID отслеживания, из которого можно удалить изображениеwidth
- width, чтобы удалить (-1 для немасштабируемого)height
- height, чтобы удалить (-1 для немасштабируемого)removeImage(java.awt.Image)
, removeImage(java.awt.Image, int)
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92