Spec-Zone.ru › OpenJDK 8

Класс MediaTracker

  • java.lang.Object
    • java.awt.MediaTracker
Все реализованные интерфейсы:
Serializable

public class MediaTracker
extends Object
implements Serializable

Класс MediaTracker — это утилитарный класс для отслеживания состояния нескольких медиаобъектов. Медиаобъекты могут включать аудиоклипы и изображения, хотя в настоящее время поддерживаются только изображения.

Для использования трекера медиа создайте экземпляр MediaTracker и вызовите его метод addImage для каждого изображения, которое нужно отслеживать. Кроме того, каждому изображению можно присвоить уникальный идентификатор. Этот идентификатор управляет приоритетом порядка загрузки изображений. Он также может использоваться для идентификации уникальных подмножеств изображений, на которых можно ожидать независимо. Изображения с меньшим ID загружаются в приоритете перед изображениями с более высоким номером ID.

Отслеживание анимированного изображения может не всегда быть полезным из-за многокомпонентной природы загрузки и отрисовки анимированных изображений, но оно поддерживается. MediaTracker рассматривает анимированное изображение как полностью загруженное, когда первый кадр полностью загружен. В этот момент MediaTracker сигнализирует всем ожидающим, что изображение полностью загружено. Если ни один ImageObserver не наблюдает за изображением, когда загрузка первого кадра завершена, изображение может очистить себя для экономии ресурсов (см. 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);
         }
     }
}
С:
JDK1.0
См. также:
Сериализованная форма

Поля

Модификатор и тип Поле и описание
static int ABORTED

Флаг, указывающий на прерывание загрузки медиа.

static int COMPLETE

Флаг, указывающий на успешное завершение загрузки медиа.

static int ERRORED

Флаг, указывающий на ошибку при загрузке медиа.

static int LOADING

Флаг, указывающий на текущую загрузку медиа.

Краткое описание конструкторов

Конструктор и описание
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)

Проверяет, загрузились ли все отслеживаемые этим трекером медиа изображения с указанным идентификатором.

Object[] getErrorsAny()

Возвращает список всех медиа, которые столкнулись с ошибкой.

Object[] getErrorsID(int id)

Возвращает список медиа с указанным ID, которые столкнулись с ошибкой.

boolean isErrorAny()

Проверяет статус ошибок всех изображений.

boolean isErrorID(int id)

Проверяет статус ошибок всех изображений, отслеживаемых этим трекером медиа, с указанным идентификатором.

void removeImage(Image image)

Удаляет указанное изображение из этого трекера медиа.

void removeImage(Image image, int id)

Удаляет указанное изображение из указанного идентификатора отслеживания этого трекера медиа.

void removeImage(Image image, int id, int width, int 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)

Начинает загрузку всех изображений, отслеживаемых этим трекером медиа, с указанным идентификатором.

Наследуемые методы из класса java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Поля

LOADING

public static final int LOADING

Флаг, указывающий, что носитель в настоящее время загружается.

См. также:
statusAll(boolean), statusID(int, boolean), Constant Field Values

ABORTED

public static final int ABORTED

Флаг, указывающий, что загрузка носителя была прервана.

См. также:
statusAll(boolean), statusID(int, boolean), Constant Field Values

ERRORED

public static final int ERRORED

Флаг, указывающий, что при загрузке носителя произошла ошибка.

См. также:
statusAll(boolean), statusID(int, boolean), Constant Field Values

COMPLETE

public static final int COMPLETE

Флаг, указывающий, что загрузка носителя завершилась успешно.

См. также:
statusAll(boolean), statusID(int, boolean), Constant Field Values

Конструкторы

MediaTracker

public MediaTracker(Component comp)

Создает средство отслеживания носителей для отслеживания изображений для данного компонента.

Параметры:
comp - компонент, на котором изображения будут в конечном итоге отображаться

Методы

addImage

public void addImage(Image image,
                     int id)

Добавляет изображение в список изображений, отслеживаемых этим средством отслеживания носителей. Изображение будет в конечном итоге отображаться в своем исходном (не масштабированном) размере.

Параметры:
image - отслеживаемое изображение
id - идентификатор, используемый для отслеживания этого изображения

addImage

public void addImage(Image image,
                     int id,
                     int w,
                     int h)

Добавляет масштабированное изображение в список изображений, отслеживаемых этим средством отслеживания носителей. Изображение будет в конечном итоге отображаться с указанной шириной и высотой.

Параметры:
image - отслеживаемое изображение
id - идентификатор, который может использоваться для отслеживания этого изображения
w - ширина, с которой изображение будет отображаться
h - высота, с которой изображение будет отображаться

checkAll

public boolean checkAll()

Проверяет, завершена ли загрузка всех изображений, отслеживаемых этим средством отслеживания носителей.

Этот метод не начинает загрузку изображений, если они еще не загружаются.

Если при загрузке или масштабировании изображения возникает ошибка, то считается, что загрузка этого изображения завершена. Используйте методы isErrorAny или isErrorID для проверки ошибок.

Возвращает:
true если все изображения завершили загрузку, были прерваны или произошла ошибка; false в противном случае
См. также:
checkAll(boolean), checkID(int), isErrorAny(), isErrorID(int)

checkAll

public boolean checkAll(boolean load)

Проверяет, завершена ли загрузка всех изображений, отслеживаемых этим средством отслеживания носителей.

Если значение флага load равно true, то этот метод начинает загрузку любых изображений, которые еще не загружаются.

Если при загрузке или масштабировании изображения возникает ошибка, то считается, что загрузка этого изображения завершена. Используйте методы isErrorAny и isErrorID для проверки ошибок.

Параметры:
load - если true, начать загрузку любых изображений, которые еще не загружаются
Возвращает:
true если все изображения завершили загрузку, были прерваны или произошла ошибка; false в противном случае
См. также:
checkID(int), checkAll(), isErrorAny(), isErrorID(int)

isErrorAny

public boolean isErrorAny()

Проверяет статус ошибки всех изображений.

Возвращает:
true если у любого из изображений, отслеживаемых этим средством отслеживания носителей, произошла ошибка во время загрузки; false в противном случае
См. также:
isErrorID(int), getErrorsAny()

getErrorsAny

public Object[] getErrorsAny()

Возвращает список всех носителей, у которых произошла ошибка.

Возвращает:
массив объектов носителей, отслеживаемых этим средством отслеживания носителей, у которых произошла ошибка, или null если таких нет
См. также:
isErrorAny(), getErrorsID(int)

waitForAll

public void waitForAll()
                throws InterruptedException

Начинает загрузку всех изображений, отслеживаемых этим средством отслеживания носителей. Этот метод ожидает, пока все отслеживаемые изображения не завершат загрузку.

Если при загрузке или масштабировании изображения возникает ошибка, то считается, что загрузка этого изображения завершена. Используйте методы isErrorAny или isErrorID для проверки ошибок.

Исключения:
InterruptedException - если какой-либо поток прервал этот поток
См. также:
waitForID(int), waitForAll(long), isErrorAny(), isErrorID(int)

waitForAll

public boolean waitForAll(long ms)
                   throws InterruptedException

Начинает загрузку всех изображений, отслеживаемых этим средством отслеживания носителей. Этот метод ожидает, пока все отслеживаемые изображения не завершат загрузку или пока не истечет время, указанное в миллисекундах аргументом ms.

Если при загрузке или масштабировании изображения возникает ошибка, то считается, что загрузка этого изображения завершена. Используйте методы isErrorAny или isErrorID для проверки ошибок.

Параметры:
ms - количество миллисекунд, в течение которых следует ожидать завершения загрузки
Возвращает:
true если все изображения были успешно загружены; false в противном случае
Исключения:
InterruptedException - если какой-либо поток прервал этот поток.
См. также:
waitForID(int), waitForAll(long), isErrorAny(), isErrorID(int)

statusAll

public int statusAll(boolean load)

Вычисляет и возвращает побитовое включение ИЛИ статуса всех носителей, отслеживаемых этим средством отслеживания носителей.

Возможные флаги, определяемые классом MediaTracker, это LOADING, ABORTED, ERRORED и COMPLETE. Изображение, которое еще не начало загружаться, имеет нулевой статус.

Если значение load равно true, то этот метод начинает загрузку любых изображений, которые еще не загружаются.

Параметры:
load - если true, начать загрузку любых изображений, которые еще не загружаются
Возвращает:
побитовое включение ИЛИ статуса всех отслеживаемых носителей
См. также:
statusID(int, boolean), LOADING, ABORTED, ERRORED, COMPLETE

checkID

public boolean checkID(int id)

Проверяет, завершена ли загрузка всех изображений, отслеживаемых этим средством отслеживания носителей и помеченных указанным идентификатором.

Этот метод не начинает загрузку изображений, если они еще не загружаются.

Если при загрузке или масштабировании изображения возникает ошибка, то считается, что загрузка этого изображения завершена. Используйте методы isErrorAny или isErrorID для проверки ошибок.

Параметры:
id - идентификатор проверяемых изображений
Возвращает:
true если все изображения завершили загрузку, были прерваны или произошла ошибка; false в противном случае
См. также:
checkID(int, boolean), checkAll(), isErrorAny(), isErrorID(int)

checkID

public boolean checkID(int id,
                       boolean load)

Проверяет, завершена ли загрузка всех изображений, отслеживаемых этим средством отслеживания носителей и помеченных указанным идентификатором.

Если значение флага load равно true, то этот метод начинает загрузку любых изображений, которые еще не загружаются.

Если при загрузке или масштабировании изображения возникает ошибка, то считается, что загрузка этого изображения завершена. Используйте методы isErrorAny или isErrorID для проверки ошибок.

Параметры:
id - идентификатор изображений для проверки
load - если true, начать загрузку любых изображений, которые еще не загружаются
Возвращает:
true если все изображения завершили загрузку, были прерваны или столкнулись с ошибкой; false в противном случае
См. также:
checkID(int, boolean), checkAll(), isErrorAny(), isErrorID(int)

isErrorID

public boolean isErrorID(int id)

Проверяет состояние ошибки всех изображений, отслеживаемых этим трекером медиа, с указанным идентификатором.

Параметры:
id - идентификатор изображений для проверки
Возвращает:
true если у любого из изображений с указанным идентификатором произошла ошибка во время загрузки; false в противном случае
См. также:
isErrorAny(), getErrorsID(int)

getErrorsID

public Object[] getErrorsID(int id)

Возвращает список медиа с указанным идентификатором, у которых произошла ошибка.

Параметры:
id - идентификатор изображений для проверки
Возвращает:
массив объектов медиа, отслеживаемых этим трекером медиа с указанным идентификатором, у которых произошла ошибка, или null если таких нет
См. также:
isErrorID(int), isErrorAny(), getErrorsAny()

waitForID

public void waitForID(int id)
               throws InterruptedException

Начинает загрузку всех изображений, отслеживаемых этим трекером медиа, с указанным идентификатором. Этот метод ожидает, пока все изображения с указанным идентификатором завершат загрузку.

Если во время загрузки или масштабирования изображения возникает ошибка, то это изображение считается завершившим загрузку. Используйте методы isErrorAny и isErrorID для проверки ошибок.

Параметры:
id - идентификатор изображений для проверки
Выбрасывает:
InterruptedException - если любой поток прервал этот поток.
См. также:
waitForAll(), isErrorAny(), isErrorID(int)

waitForID

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)

statusID

public int statusID(int id,
                    boolean load)

Вычисляет и возвращает побитовое включительно ИЛИ состояния всех медиа с указанным идентификатором, отслеживаемых этим трекером медиа.

Возможные флаги, определенные классом MediaTracker, это LOADING, ABORTED, ERRORED, и COMPLETE. У изображения, которое еще не начало загружаться, состояние равно нулю.

Если значение load равно true, то этот метод запускает загрузку любых изображений, которые еще не загружаются.

Параметры:
id - идентификатор изображений для проверки
load - если true, начать загрузку любых изображений, которые еще не загружаются
Возвращает:
побитовое включительно ИЛИ состояния всех медиа с указанным идентификатором, которые отслеживаются
См. также:
statusAll(boolean), LOADING, ABORTED, ERRORED, COMPLETE

removeImage

public void removeImage(Image image)

Удаляет указанное изображение из этого трекера медиа. Все экземпляры указанного изображения удаляются, независимо от масштаба или идентификатора.

Параметры:
image - изображение, которое нужно удалить
С:
JDK1.1
См. также:
removeImage(java.awt.Image, int), removeImage(java.awt.Image, int, int, int)

removeImage

public void removeImage(Image image,
                        int id)

Удаляет указанное изображение из указанного идентификатора отслеживания этого трекера медиа. Все экземпляры Image, отслеживаемые по указанному идентификатору, удаляются независимо от масштаба.

Параметры:
image - изображение, которое нужно удалить
id - идентификатор отслеживания, из которого нужно удалить изображение
С:
JDK1.1
См. также:
removeImage(java.awt.Image), removeImage(java.awt.Image, int, int, int)

removeImage

public void removeImage(Image image,
                        int id,
                        int width,
                        int height)

Удаляет указанное изображение с указанной шириной, высотой и идентификатором из этого трекера медиа. Удаляется только указанный экземпляр (с любыми дубликатами).

Параметры:
image - изображение, которое нужно удалить
id - идентификатор отслеживания, из которого нужно удалить изображение
width - ширина для удаления (-1 для без масштабирования)
height - высота для удаления (-1 для без масштабирования)
С:
JDK1.1
См. также:
removeImage(java.awt.Image), removeImage(java.awt.Image, int)

© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API