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

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

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

      try
      {
        // Получаем содержимое этого файла
        URLContent = SrcURL.openConnection().getContent();
      }
      catch (IOException ioe)
      {
        showStatus("getContent exception");

        // При возникновении исключения во время получения
        // содержимого устанавливаем код ошибки, равный 1
        errno = 1;
      }
    }
    catch (MalformedURLException uex)
    {
      showStatus("MalformedURLException exception");

      // При возникновении ошибки в процессе создания
      // объекта класса URL устанавливаем код ошибки,
      // равный 2
      errno = 2;
    }
  }

  // -------------------------------------------------------
  // paint
  // Метод paint, выполняющий рисование в окне аплета
  // -------------------------------------------------------
  public void paint(Graphics g)
  {
    // Строка, в которую будет записано содержимое
    // файла данных для круговой диаграммы
    String sChart = "";
    
    // Начальный угол сектора диаграммы
    Integer AngleFromChart = new Integer(0);
    
    // Угол предыдущего сектора диаграммы
    int PrevAngle = 0;

    // Случайные компоненты цвета сектора
    int rColor, gColor, bColor;

    // Определяем текущие размеры окна аплета
    Dimension dimAppWndDimension = size();
    
    // Выбираем в контекст отображения желтый цвет
    g.setColor(Color.yellow);
    
    // Закрашиваем внутреннюю область окна аплета
    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(URLContent instanceof String)
    {
      sChart = (String)URLContent;
    }
    
    // Если нет, устанавливаем код ошибки, равный 3
    else
      errno = 3;

    // Если произошла ошибка, отображаем ее код
    // и полученные данные
    if(errno != 0)
      showStatus("errno: " + errno + ", sChart: " + sChart);
    
    // Если ошибки нет, отображаем полученные данные
    else
      showStatus(sChart);

    // Создаем разборщик текстовой строки для
    // выделения значений углов в принятом файле данных
    StringTokenizer st = 
      new StringTokenizer(sChart, ",\r\n");

    // Цикл по всем значениям
    while(st.hasMoreElements())
    {
      // Выбираем случайный цвет для рисования
      rColor = (int)(255 * Math.random());
      gColor = (int)(255 * Math.random());
      bColor = (int)(255 * Math.random());

      // Устанавливаем выбранный цвет в контексте 
      // отображения
      g.setColor(new Color(rColor, gColor, bColor));

      // Получаем значение угла
      String angle = (String)st.nextElement();

      // Преобразуем его в численное значение
      AngleFromChart = new Integer(angle) ;
      
      // Рисуем сектор диаграммы
      g.fillArc(0, 0, 200, 200, 
        PrevAngle, AngleFromChart.intValue());

      // Увеличиваем текущее значение угла
      PrevAngle += AngleFromChart.intValue();
    }
  }
}
   Исходный текст документа HTML, созданного автоматически для нашего аплета, 
представлен в листинге 3.4.
Листинг 3.4. Файл ShowChart\ShowChart.html


ShowChart




The source. Описание исходного текста Приложение ShowChart получает содержимое файла исходных данных для построения круговой диаграммы с помощью класса URL. Как вы увидите, для получения содержимого этого файла оно не создает поток ввода явным образом, как это делало предыдущее приложение (хотя могло бы). Вместо этого оно пользуется методом getContent, определенным в классе URL. Поля класса ShowChart В классе ShowChart определены три поля. Поле SrcURL класса URL хранит адрес URL файла исходных данных для круговой диаграммы. В поле URLContent типа Object будет переписано содержимое этого файла. И, наконец, в поле errno хранится текущий код ошибки, если она возникла, или нулевое значение, если все операции были выполнены без ошибок. Метод init Во время инициализации метод init создает объект класса URL для файла исходных данных: SrcURL = new URL("http://frolov/chart.txt"); Здесь для экономии места в книге мы указали адрес URL файла исходных данных непосредственно в программе, однако вы можете передать этот адрес аплету через параметр в документе HTML. Далее для нашего объекта URL мы создаем канал и получаем содержимое объекта (то есть исходные данные для построения диаграммы): URLContent = SrcU
 
<<-[Весь Текст]
Страница: из 275
 <<-