Spec-Zone.ru › OpenJDK 21

Класс MediaTracker

java.lang.Object
java.awt.MediaTracker
Все реализуемые интерфейсы:
Serializable
public class MediaTracker extends Object implements Serializable
Класс MediaTracker — это вспомогательный класс для отслеживания состояния ряда медиаобъектов. Медиаобъекты могут включать аудиоклипы и изображения, хотя в настоящее время поддерживаются только изображения.

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

Отслеживание анимированного изображения может не всегда быть полезным из-за многокомпонентного характера загрузки и рисования анимированных изображений, но оно поддерживается. 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);
          }
      }
 }
  
С:
1.0
См. также:
  • Сериализованная форма

Краткое описание полей

Модификатор и тип Поле Описание
static final int ABORTED
Флаг, указывающий на прерывание загрузки медиа.
static final int COMPLETE
Флаг, указывающий на успешное завершение загрузки медиа.
static final int ERRORED
Флаг, указывающий на ошибку при загрузке медиа.
static final 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)
Возвращает список медиа с указанным идентификатором, которые столкнулись с ошибкой.
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)
Удаляет указанное изображение с указанной шириной, высотой и идентификатором из этого медиатракера.
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)
  • Значения константных полей

ABORTED

public static final int ABORTED
Флаг, указывающий, что загрузка медиа была прервана.
См. также:
  • statusAll(boolean)
  • statusID(int, boolean)
  • Значения константных полей

ERRORED

public static final int ERRORED
Флаг, указывающий, что при загрузке медиа произошла ошибка.
См. также:
  • statusAll(boolean)
  • statusID(int, boolean)
  • Значения константных полей

COMPLETE

public static final int COMPLETE
Флаг, указывающий, что загрузка медиа успешно завершена.
См. также:
  • statusAll(boolean)
  • statusID(int, boolean)
  • Значения константных полей

Подробное описание конструкторов

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)
  • 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 для проверки ошибок.

Parameters:
id - идентификатор изображений для проверки
Returns:
true если все изображения загрузились, были прерваны или произошла ошибка; false в противном случае
See Also:
  • checkID(int, boolean)
  • checkAll()
  • isErrorAny()
  • isErrorID(int)

checkID

public boolean checkID(int id, boolean load)
Проверяет, загрузились ли все изображения, отслеживаемые этим трекером медиа, помеченные указанным идентификатором.

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

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

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

isErrorID

public boolean isErrorID(int id)
Проверяет состояние ошибки всех изображений, отслеживаемых этим трекером медиа, с указанным идентификатором.
Parameters:
id - идентификатор изображений для проверки
Returns:
true если у любого из изображений с указанным идентификатором произошла ошибка при загрузке; false в противном случае
See Also:
  • isErrorAny()
  • getErrorsID(int)

getErrorsID

public Object[] getErrorsID(int id)
Возвращает список медиа с указанным ID, которые столкнулись с ошибкой.
Parameters:
id - идентификатор изображений для проверки
Returns:
массив объектов медиа, отслеживаемых этим трекером медиа с указанным идентификатором, которые столкнулись с ошибкой, или null если таких нет
See Also:
  • isErrorID(int)
  • isErrorAny()
  • getErrorsAny()

waitForID

public void waitForID(int id) throws InterruptedException
Начинает загрузку всех изображений, отслеживаемых этим трекером медиа, с указанным идентификатором. Этот метод ожидает, пока все изображения с указанным идентификатором не будут загружены.

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

Parameters:
id - идентификатор изображений для проверки
Throws:
InterruptedException - если какая-либо нить прервала эту нить.
See Also:
  • waitForAll()
  • isErrorAny()
  • isErrorID(int)

waitForID

public boolean waitForID(int id, long ms) throws InterruptedException
Начинает загрузку всех изображений, отслеживаемых этим трекером медиа, с указанным идентификатором. Этот метод ожидает, пока все изображения с указанным идентификатором не будут загружены, или пока не пройдет время, указанное в миллисекундах аргументом ms.

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

Parameters:
id - идентификатор изображений для проверки
ms - время ожидания завершения загрузки в миллисекундах
Returns:
true если загрузка завершилась вовремя; иначе false
Throws:
InterruptedException - если какая-либо нить прервала эту нить.
See Also:
  • waitForAll()
  • waitForID(int)
  • statusID(int, boolean)
  • isErrorAny()
  • isErrorID(int)

statusID

public int statusID(int id, boolean load)
Вычисляет и возвращает битовое включительно ИЛИ статуса всех медиа с указанным идентификатором, отслеживаемых этим трекером медиа.

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

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

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

removeImage

public void removeImage(Image image)
Удаляет указанное изображение из этого трекера медиа. Все экземпляры указанного изображения удаляются, независимо от масштаба или ID.
Parameters:
image - удаляемое изображение
Since:
1.1
See Also:
  • removeImage(java.awt.Image, int)
  • removeImage(java.awt.Image, int, int, int)

removeImage

public void removeImage(Image image, int id)
Удаляет указанное изображение из указанного идентификатора отслеживания этого трекера медиа. Все экземпляры Image, отслеживаемые по указанному ID, удаляются независимо от масштаба.
Parameters:
image - удаляемое изображение
id - идентификатор отслеживания, из которого следует удалить изображение
Since:
1.1
See Also:
  • removeImage(java.awt.Image)
  • removeImage(java.awt.Image, int, int, int)

removeImage

public void removeImage(Image image, int id, int width, int height)
Удаляет указанное изображение с указанной шириной, высотой и ID из этого трекера медиа. Удаляется только указанный экземпляр (с любыми дубликатами).
Parameters:
image - удаляемое изображение
id - идентификатор отслеживания, из которого следует удалить изображение
width - ширина для удаления (-1 для не масштабированного)
height - высота для удаления (-1 для не масштабированного)
Since:
1.1
See Also:
  • removeImage(java.awt.Image)
  • removeImage(java.awt.Image, int)

© 1993, 2023, 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.
https://docs.oracle.com/en/java/javase/21/docs/api/java.desktop/java/awt/MediaTracker.html

Spec-Zone.ru

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