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

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

Библиотека :: Компьютеры и Программирование :: А.В. Фролов, Г.В. Фролов - Microsoft Visual J++
<<-[Весь Текст]
Страница: из 275
 <<-
 
, 200, 200, this);

    // Рисуем нормальное изображение флоппи-диска
    g.drawImage(FloppyDiskImg, 25, 3, this);

    // Рисуем нормальное изображение компакт-диска
    g.drawImage(CDDiskImg , 70, 3, this);

    // Рисуем вытянутое изображение компакт-диска
    g.drawImage(CDDiskImg , 115, 3, 40, 25, this);
  }
}
   Листинг 4.2 содержит исходный текст документа HTML, созданный для нашего 
аплета автоматически системой Microsoft Visual J++.
Листинг 4.2. Файл ImageDraw\ImageDraw.html


ImageDraw




The source. Описание исходных текстов В главном классе нашего аплета определено два поля и несколько методов. Рассмотрим эти поля и самые важные методы. Поля класса ImageDraw В классе ImageDraw определено два поля: Image FloppyDiskImg; Image CDDiskImg; В первом из них хранится ссылка на изображение флоппи-диска, во втором - ссылка на изображение компакт-диска. Метод init Метод init создает два объекта класса Image для файлов disk.gif и cd.gif: FloppyDiskImg = getImage(getCodeBase(), "disk.gif"); CDDiskImg = getImage(getCodeBase(), "cd.gif"); В качестве первого параметра методу getImage передается адрес URL аплета, полученный при помощи метода getCodeBase. При этом предполагается, что файлы disk.gif и cd.gif находятся в том же каталоге, что и аплет. Метод paint После раскрашивания окна аплета в белый цвет и рисования вокруг окна черной рамки метод paint вызывает четыре раза метод drawImage, рисуя изображения флоппи-диска и компакт-диска: g.drawImage(FloppyDiskImg, 25, 42, 200, 200, this); g.drawImage(FloppyDiskImg, 25, 3, this); g.drawImage(CDDiskImg , 70, 3, this); g.drawImage(CDDiskImg , 115, 3, 40, 25, this); В первый раз флоппи-диск рисуется с масштабированием, во второй раз - в исходном виде. Компакт-диск вначале рисуется в исходном виде, а затем - растянутым по горизонтали. Ожидание загрузки изображений Как мы уже говорили, загрузка изображений из сети Internet - длительный процесс, который в среднем идет со скоростью 1 Кбайт в секунду. Поэтому изображения загружаются навигатором в отдельной задаче. При этом метод getImage только создает объект класса Image, а метод drawImage инициирует загрузку изображения и рисует его. Причем если файл изображения имеет большую длину, он будет появляться в окне аплета постепенно по мере загрузки. Однако в некоторых случаях было бы удобно вначале загрузить изображение полностью, а лишь затем выполнять рисование, чтобы изображение появилось на экране сразу. Кроме того, аплет может рисовать сразу несколько изображений в разных местах своего окна или показывать их по очереди в одном и том же месте для достижения эффекта анимации. Есть ли способ определить, когда изображение будет загружено полностью? Есть, и причем целых два. Один из них связан с использованием класса MediaTracker, специально предназначенного для этой цели и достаточно удобного в использовании, другой основан на переопределении одного из методов интерфейса ImageObserver. Применение класса MediaTracker Для того чтобы выполнить ожидание загрузки нескольких изображений, проще воспользоваться классом MediaTracker, а не интерфейсом ImageObserver. Как это сделать? Обычно метод init аплета создает объект класса MediaTracker с помощью конструктора и добавляет в него все изображения, загрузки которых необходимо дождаться. Создание объекта класса MediaTracker Объект класса MediaTracker создается следующим образом: MediaTracker mt; mt = new MediaTracker(this); Конструктору класса MediaTracker передается ссылка на компонент, для которого необходимо отслеживать загрузку изображений. В данном случае это наш аплет, поэтому мы передаем конструктору значение this. Добавление изображений в объект класса MediaTracker Далее метод init должен создать все необходимые объекты класса Image и добавить их в объект MediaTracker методом addImage. Ниже мы показали фра
 
<<-[Весь Текст]
Страница: из 275
 <<-