| |
мент
кода, в котором выполняется добавление трех изображений:
Image img1;
Image img2;
Image img3;
img1 = getImage(getCodeBase(), "pic1.gif");
img2 = getImage(getCodeBase(), "pic2.gif");
img3 = getImage(getCodeBase(), "pic3.gif");
mt.addImage(img1 , 0);
mt.addImage(img2 , 0);
mt.addImage(img3 , 0);
В качестве первого параметра методу addImage передается ссылка на
изображение, загрузку которого необходимо отслеживать, а в качестве второго -
идентификатор, который можно будет использовать в процессе отслеживания. Если
все, что вам нужно, это дождаться окончания загрузки изображений, то для
второго параметра вы можете указать нулевое значение.
Ожидание загрузки добавленных изображений
Для того чтобы убедиться, что все изображения загружены, вы можете
воспользоваться методом waitForAll. Этот метод инициирует загрузку изображений,
а также задержит выполнение вызвавшей его задачи до момента полной загрузки
всех изображений, добавленных в объект класса MediaTracker:
try
{
mt.waitForAll();
}
catch (InterruptedException ex)
{
}
Обратите внимание, что метод waitForAll может создавать исключение
InterruptedException. Это исключение возникает, если по какой-либо причине
процесс ожидания прерывается.
Чаще всего рисование выполняется в отдельной задаче, поэтому метод
waitForAll должен вызываться в начале соответствующего метода run. Ниже мы
привели исходные тексты приложения ImageDrawWait, в котором такое ожидание
выполняется в методе paint, что приводит, однако, к блокировке работы аплета до
момента загрузки всех изображений. В данном случае это не критично, так как
кроме рисования изображений наш аплет ничего не делает, однако более
предпочтительным является выполнение длительных процессов в отдельной задаче.
Другие методы класса MediaTracker
Какие другие полезные методы, кроме методов addImage и waitForAll есть в
классе MediaTracker?
public boolean waitForAll(long ms);
Метод waitForAll с параметром ms позволяет выполнять ожидание в течение
заданного времени. Время ожидания задается в миллисекундах. При этом если за
указанное время все изображения были успешно загружены, метод waitForAll
возвращает значение true, если нет - false.
Вариант метода checkAll с параметром load позволяет проверить, завершилась
ли загрузка отслежива
|
|