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

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

Библиотека :: Компьютеры и Программирование :: А.В. Фролов, Г.В. Фролов - Microsoft Visual J++
<<-[Весь Текст]
Страница: из 275
 <<-
 
e не нужны
    return !fAllLoaded;
  }
    
  // -------------------------------------------------------
  // paint
  // Метод paint, выполняющий рисование в окне аплета
  // -------------------------------------------------------
  public void paint(Graphics g)
  {
    // Определяем текущие размеры окна аплета
    Dimension dimAppWndDimension = size();
    
    // Выбираем в контекст отображения белый цвет
    g.setColor(Color.white);
    
    // Закрашиваем внутреннюю область окна аплета
    g.fillRect(0, 0, 
      dimAppWndDimension.width  - 1, 
      dimAppWndDimension.height - 1);

    // Выбираем в контекст отображения черный цвет
    g.setColor(Color.black);

    // Рисуем рамку вокруг окна аплета
    g.drawRect(0, 0, 
      dimAppWndDimension.width  - 1, 
      dimAppWndDimension.height - 1);

    if(fAllLoaded == false)
    {
      // Рисуем сообщение о начале загрузки
      g.drawString("Подождите, идет загрузка...",
        20, dimAppWndDimension.height / 2);
    }

    // Рисуем изображение фона
    g.drawImage(BkgImg, 1, 1, 
      dimAppWndDimension.width  - 2, 
      dimAppWndDimension.height - 2, this);
  }
}
   В листинге 4.6 вы найдете исходный текст документа HTML, созданного 
автоматически для нашего аплета.
Листинг 4.6. Файл DrawImageObserver\DrawImageObserver.html


DrawImageObserver




The source. Описание исходных текстов Наше приложение переопределяет метод imageUpdate, в котором отслеживает процесс загрузки фонового изображения. Опишем основные методы, определенные в приложении DrawImageObserver. Метод init В процессе инициализации аплета метод init создает объект класса Image, соответствующий изображению фона: public void init() { BkgImg = getImage(getCodeBase(), "bkg.gif"); } Как вы уже знаете, при этом реальная загрузка файла изображения не выполняется. Метод paint Свою работу метод paint начинает с раскрашивания окна аплета и рисования рамки вокруг окна. Затем метод проверяет флаг fAllLoaded, начальное значение которого равно false: if(fAllLoaded == false) { g.drawString("Подождите, идет загрузка...", 20, dimAppWndDimension.height / 2); } Флаг fAllLoaded служит индикатором полной загрузки изображения и устанавливается методом imageUpdate, отслеживающим загрузку. Пока значение этого флага равно false, метод paint отображает в окне аплета сообщение о том, что идет процесс загрузки. Когда изображение будет полностью загружено, метод imageUpdate устанавливает значение флага fAllLoaded, равное true, а затем принудительно перерисовывает окно аплета, вызывая метод repaint. При этом метод paint рисует в окне аплета полностью загруженное изображение фона: g.drawImage(BkgImg, 1, 1, dimAppWndDimension.width - 2, dimAppWndDimension.height - 2, this); Метод imageUpdate Метод imageUpdate периодически вызывается в процессе загрузки изображения, конструируя каждый раз значение флага полной загрузки fAllLoaded следующим образом: fAllLoaded = ((flags & ALLBITS) != 0); Когд изображение будет полностью загружено, в параметре flags метода imageUpdate будет установлен флаг ALLBITS, после чего флаг fAllLoaded будет установлен в значение true. Как только это произойдет, метод imageUpdate вызовет метод repaint, выполнив принудительную перерисовку окна аплета: if(fAllLoaded) repaint(); При этом метод paint нарисует в окне аплета изображение фона, закрасив им сообщение о ходе процесса загрузки изображения. Метод imageUpdate должен возвратить значение false или true. Если изображение еще не загружено, возвращается значение true: return !fAllLoaded; При этом метод imageUpdate будет вызываться еще раз для отслеживания процесса загрузки. Когда загрузка будет завершена, метод imageUpdate возвратит значение false, после чего этот метод вызываться больше не будет. Видео в окне аплета Наиболее динамичные страницы сервера Web содержат анимационные изображения в виде небольших видеофильмов. Как мы рассказывали в 29 томе “Библиотеки системного программиста”, который называется “Сервер Web своими руками”, вы можете п
 
<<-[Весь Текст]
Страница: из 275
 <<-