JavaTips - Трэкинг ваших изображений.
Важная часть интерфейса пользователя - это то, что он (интерфейс) должен выглядеть
законченным. Незавершенный текст и частично выведенные компоненты передают пользователю
неправильное сообщение. Хотя вы приложили большое количество усилий, чтобы разработать
вашу программу, но если она отображает незавершенный UI, то ваш профессионализм находится
под угрозой.
Это может показаться запутанной задачей в начале, но в многих случаях, вы можете
провести сортировку. Например, не так раздражительно видеть в течение нескольких
секунд сообщение "System initializing... Please wait" и использовать это
время для инициализации UI. Один из популярных кандидатов на инициализацию загружает
изображения, требуемые программой.
Задача здесь состоит в том, чтобы ждать, пока все изображения не будут загружены в
память. Java поддерживает класс java.awt.MediaTracker, чтобы проследить
состояние изображений. Далее показывается как вы можете сделать это:
1. Создайте образец java.awt.MediaTracker
2. Используйте метод addImage() вышеупомянутого объекта, чтобы добавить
изображения, которые будут прослежены.
3. Вызовите один из методов вышеупомянутого объекта для ожидания требуемых
изображений.
Следующий отрывок кода показывает это:
//...
// Array of images
Images[] imgs = new Images[3];
// The image tracker
MediaTracker tracker = new MediaTracker(this);
//... Initialize the images here and add them to the tracker
for(int i = 0; i < imgs.length; i++) {
// imgs[i] = ...
tracker.addImage(imgs[i], i);
}
//...
// Wait for all the images to load
tracker.waitForAll();
//...
Вышеупомянутая программа делает несколько интересных вещей. Она в основе имеет
массив изображений, которые прослеживаются объектом java.awt.MediaTracker.
Объект MediaTracker создается, используя компонент, на котором изображения
будут выведены. В цикле мы инициализируем массив изображений и добавляем их к
tracker'у. Второй параметр для метода addImage() - это id, используемый для
прослеживания изображения. Наконец, программа ожидает загрузки всех изображений,
вызывая метод waitForAll().
Вы можете использовать метод waitForID(), чтобы ждать загрузки частичного
изображения. Вы можете ждать группу изображений, определяя для них тот же самый id
в методе addImage() и затем используя этот id в вызове waitForID().
В целом, MediaTracker выполняет загрузку изображения много проще. Таким
образом, в следующий раз когда вы думаете о изображениях в вашем UI, думаете также и
о MediaTracker'е.
Nitin
Источник: www.javapower.ru
|