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

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

Библиотека :: Компьютеры и Программирование :: А.В. Фролов, Г.В. Фролов - Microsoft Visual J++
<<-[Весь Текст]
Страница: из 275
 <<-
 
tation представлен в листинге 4.
7.
Листинг 4.7. Файл CDRotation\CDRotation.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 CDRotation extends Applet implements Runnable
{
  // Ссылка на задачу рисования 
  // вращающегося компакт-диска
  Thread m_CDRotation = null;

  // Контекст отображения для рисования
  private Graphics m_Graphics;

  // Массив изображений компакт-диска
  private Image m_Images[];

  // Номер текущего изображения
  private int m_nCurrImage;
  
  // Ширина изображения
  private int m_nImgWidth  = 0;
 
  // Высота изображения
  private int m_nImgHeight = 0;

  // Флаг загрузки всех изображений
  private boolean m_fAllLoaded = false;

  // Общее количество изображений
  private final int NUM_IMAGES = 11;

  // -------------------------------------------------------
  // getAppletInfo
  // Метод, возвращающей строку информации об аплете
  // -------------------------------------------------------
  public String getAppletInfo()
  {
    return "Name: CDRotation\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";
  }

  // -------------------------------------------------------
  // displayImage
  // Рисование текущего изображения, если все изображения
  // уже загружены
  // -------------------------------------------------------
  private void displayImage(Graphics g)
  {
    // Если не все изображения загружены,
    // ничего не делаем
    if (!m_fAllLoaded)
      return;

    // Рисуем текущее изображение в центре окна аплета
    g.drawImage(m_Images[m_nCurrImage],
      (size().width - m_nImgWidth)   / 2,
      (size().height - m_nImgHeight) / 2, null);

    // Рисуем в вернем левом углу кадра его порядковый номер
    g.drawString((new Integer(m_nCurrImage)).toString(),
      (size().width - m_nImgWidth)   / 2,
      ((size().height - m_nImgHeight) / 2) + 10);
  }

  // -------------------------------------------------------
  // 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 (m_fAllLoaded)
    {
      displayImage(g);
    }
    
    // Если не загружены, рисуем сообщение
    // о загрузке
    else
      g.drawString("Подождите, идет загрузка...", 
        10, dimAppWndDimension.height / 2);
  }

  // -------------------------------------------------------
  // start
  // Метод вызывается при первом отображении окна аплета
  // -------------------------------------------------------
  public void start()
  {
    if (m_CDRotation == null)
    {
      m_CDRotation = new Thread(this);
      m_CDRotation.start();
    }
  }
  
  // ------------
 
<<-[Весь Текст]
Страница: из 275
 <<-