Druzya.org
Возьмемся за руки, Друзья...
 
 
Наши Друзья

Александр Градский
Мемориальный сайт Дольфи. 
				  Светлой памяти детей,
				  погибших  1 июня 2001 года, 
				  а также всем жертвам теракта возле 
				 Тель-Авивского Дельфинариума посвящается...

Библиотека :: Компьютеры и Программирование :: А.В. Фролов, Г.В. Фролов - Microsoft Visual J++
<<-[Весь Текст]
Страница: из 275
 <<-
 
gs, дожидаясь установки нужных флагов. 
   Флаги определены следующим образом:
public final static int WIDTH;
public final static int HEIGHT = 2;
public final static int PROPERTIES = 4;
public final static int SOMEBITS = 8;
public final static int FRAMEBITS = 16;
public final static int ALLBITS = 32;
public final static int ERROR = 64;
public final static int ABORT = 128;
   Ниже мы привели краткое описание перечисленных выше флагов.
   
ФлагОписаниеWIDTHИзображение загружено настолько, что стала доступна его ширина.
 Значение ширины изображения можно получить из параметра w метода imageUpdate
HEIGHTАналогично предыдущему, но для высоты изображения. Высоту изображения 
можно получить из параметра h метода imageUpdatePROPERTIESСтали доступны 
свойства изображения, которые можно получить методом getProperty класса Image. 
В нашей книге мы опустили описание этого методаSOMEBITSСтали доступны биты 
изображения для рисования в масштабе. Через параметры x, y, h и w передаются 
координаты и размеры прямоугольной области, которая ограничивает загруженную 
часть изображенияFRAMEBITSЗагружен очередной фрейм изображения,  состоящего из 
нескольких фреймов. Параметры x, y, h и w следует игнорироватьALLBITS
Изображение загружено полностью. Параметры x, y, h и w следует игнорировать
ERRORПри загрузке произошла ошибкаABORTЗагрузка изображения была прервана или 
отменена   
   Анализируя состояние флагов, метод imageUpdate может следить за ходом 
загрузки изображений, отображая, например, процент завершения процесса загрузки 
или выполняя какие-либо другие действия. 
   Если вам нужно только дождаться завершения процесса загрузки, достаточно 
использовать флаг ALLBITS. Для проверки ошибок воспользуйтесь флагами ERROR и 
ABORT.
   Приложение ImageDrawWait
   В приложении ImageDrawWait мы демонстрируем использование класса 
MediaTracker для ожидания процесса завершения загрузки изображений, показанных 
на рис. 4.1. Эти изображения рисуются приложением ImageDrawWait не на белом 
фоне, а на фоне другого изображения. 
   Файл изображение фона имеет значительный размер, поэтому без применения 
техники ожидания завершения загрузки он будет появляться в окне по частям 
(именно так работает метод imageUpdate, определенный в классе Applet), а затем 
будут нарисованы остальные изображения. Наше приложение сначала дожидается 
завершения загрузки всех изображений, а затем рисует их, поэтому все 
изображения появятся практически одновременно и целиком.
   В процессе загрузки окно приложения ImageDrawWait отображает сообщение о 
ходе загрузки (рис. 4.2).

Рис. 4.2. Сообщение о ходе процесса загрузки изображений
   После загрузки в окне аплета рисуется изображение фона
   Исходные тексты приложения
   Исходные тексты приложения ImageDrawWait вы найдете в листинге 4.3.
Листинг 4.3. Файл ImageDrawWait\ImageDrawWait.java
// =========================================================
// Рисование растровых изображений с ожиданием их загрузки
//
// (C) Фролов А.В, 1997
//
// E-mail: [email protected]
// WWW:    http://www.glasnet.ru/~frolov
//            или
//         http://www.dials.ccas.ru/frolov
// =========================================================
import java.applet.*;
import java.awt.*;

public class ImageDrawWait extends Applet
{
  // Фоновое изображение
  Image BkgImg;
  
  // Изображение флоппи-диска
  Image FloppyDiskImg;

  // Изображение компакт-диска
  Image CDDiskImg;

  // Ссылка на MediaTracker
  MediaTracker mt;

  // -------------------------------------------------------
  // getAppletInfo
  // Метод, возвращающей строку информации об аплете
  // -------------------------------------------------------
  public String getAppletInfo()
  {
    return "Name: ImageDrawWait\r\n" +
      "Author: Alexandr Frolov\r\n" +
      "E-mail: [email protected]" +
      "WWW:    http://www.glasnet.ru/~frolov" +
      "Created with Microsoft Visual J++ Version 1.0";
  }

  // -------------------------------------------------------
  // init
  // Метод init, получает управление 
  // при инициализации аплета
  // -------------------------------------------------------
  public void init()
  {
    // Создаем объект класса MediaTracker
    mt = new MediaTracker(this);

    // Загружаем фоновое изображение
    BkgImg = getImage(getCodeBase(), "bkg.gif");
    
    // Добавляем его в список объекта MediaTracker
    mt.addImage(BkgImg , 0);

    // Загружаем изображение флоппи-диска
    FloppyDiskImg = getImage(getCodeBase(), "disk.gif");

    // Добавляем его в список объекта MediaTracker
    mt.addImage(FloppyDiskImg, 0);

    // Загружаем изображение флоппи
 
<<-[Весь Текст]
Страница: из 275
 <<-