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

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

Библиотека :: Компьютеры и Программирование :: А.В. Фролов, Г.В. Фролов - Microsoft Visual J++
<<-[Весь Текст]
Страница: из 275
 <<-
 
аны с обработкой 
ошибок:
public boolean isErrorAny();
public boolean isErrorID(int id);	
public Object[] getErrorsAny();
public Object[] getErrorsID(int id); 
   Методы isErrorAny и isErrorID позволяют проверить, возникла ли ошибка при 
загрузке, соответственно, любого из отслеживаемых изображений или изображений 
из заданной группы. Если ошибка произошла, возвращается значение true, если нет 
- значение false.
   Методы getErrorsAny и getErrorsID возвращают массив объектов, при ожидании 
загрузки которых произошла ошибка. Первый из этих методов возвращает массив для 
всех отслеживаемых объектов, второй - только объектов из заданной группы.
   Применение интерфейса ImageObserver
   Второй способ ожидания завершения процесса загрузки изображений связан с 
интерфейсом ImageObserver. Определение этого интерфейса не занимает много места,
 поэтому мы приведем его полностью:
public interface java.awt.image.ImageObserver
{
  // -------------------------------------------------------
  // Биты флагов для параметра infoflags метода imageUpdate 
  // -------------------------------------------------------
  public final static int ABORT; 
  public final static int ALLBITS; 
  public final static int ERROR; 
  public final static int FRAMEBITS; 
  public final static int HEIGHT; 
  public final static int PROPERTIES;	
  public final static int SOMEBITS; 
  public final static int WIDTH; 

  // -------------------------------------------------------
  // Метод imageUpdate
  // -------------------------------------------------------
  public abstract boolean
    imageUpdate(Image img, int infoflags, int x, int y,
      int width, int height);
}
   Как видите, в интерфейсе ImageObserver определен единственный метод 
imageUpdate и набор битовых флагов для этого метода.
   Класс Component, от которого происходит класс Applet, реализует интерфейс 
ImageObserver:
public abstract class java.awt.Component
  extends java.lang.Object
  implements java.awt.image.ImageObserver
{
  . . .
}
   Этот интерфейс используется для отслеживания процесса загрузки и перерисовки 
изображений и других компонент, расположенных внутри компонента. В частности, 
он используется для отслеживания загрузки и рисования растровых изображений в 
окне аплета, чем мы и воспользуемся.
   В процессе загрузки вызывается метод imageUpdate, поэтому чтобы отслеживать 
загрузку изображений, наш аплет должен переопределить этот метод.
   Процедура ожидания загрузки изображений достаточно проста.
   Прежде всего, аплет должен передать в последнем параметре методу drawImage 
ссылку на интерфейс ImageObserver, который будет применяться для отслеживания 
процесса загрузки:
g.drawImage(Img, x, y, width, height, this);
   Здесь в качестве ссылки на интерфейс ImageObserver мы передали значение this.
 При этом будет применен интерфейс нашего аплета. Соответственно, нам нужно 
определить в классе аплета метод imageUpdate, который будет вызываться в 
процессе загрузки изображений.
   Ниже мы привели возможный вариант реализации этого метода, который позже 
будет описан в деталях:
public boolean imageUpdate(Image img, int flags,
  int x, int y, int w, int h)
{
  // Проверяем, все ли биты изображения загружены
  fAllLoaded = ((flags & ALLBITS) != 0);

  // Если все, перерисовываем окно
  if(fAllLoaded)
    repaint();

  // Если все биты загружены, дальнейшие вызовы
  // метода imageUpdate не нужны
  return !fAllLoaded;
}
   Через первый параметр img методу imageUpdate передается ссылка на 
изображение, загрузка которого отслеживается.
   Параметр flags отражает состояние процесса загрузки.
   Через остальные параметры x, y, w и h передаются, соответственно, координаты 
и размеры изображения.
   Основное, что должен делать метод imageUpdate для отслеживания процесса 
загрузки - это проверять флаги fl
 
<<-[Весь Текст]
Страница: из 275
 <<-