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

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

Библиотека :: Компьютеры и Программирование :: А.В. Фролов, Г.В. Фролов - Microsoft Visual J++
<<-[Весь Текст]
Страница: из 275
 <<-
 
L.openConnection().getContent();
   Здесь использована двухступенчатая процедура получения содержимого с 
созданием канала как объекта класса URLConnection. Вы также можете упростить 
этот код, воспользовавшись методом getContent из класса URL:
URLContent = SrcURL.getContent();
   Результат в обоих случаях будет одинаковый - содержимое файла исходных 
данных окажется записанным в поле URLContent класса Object.
   Если при создании объекта класса URL возникло исключение, метод init 
записывает в поле errno код ошибки, равный 2, записывая при этом в строку 
состояния навигатора сообщение “MalformedURLException exception”.
   В том случае, когда объект класса URL создан успешно, а исключение возникло 
в процессе получения содержимого файла, в поле errno записывается значение 1, а 
в строку состояния навигатора - сообщение "getContent exception".
   Метод paint
   После раскрашивания фона окна аплета и рисования вокруг него рамки метод 
paint приступает к рисованию круговой диаграммы.
   Прежде всего метод проверяет, является ли полученный из сети объект 
текстовой строкой класса String. Если является, то выполняется явное 
преобразование типа:
if(URLContent instanceof String)
{
  sChart = (String)URLContent;
}
   В случае успеха в переменной sChart будет находиться строка исходных данных 
для построения диаграммы, а при ошибке - строка “”, записанная туда при 
инициализации. Кроме того, в поле errno записывается значение 3.
   Далее метод paint проверяет, были ли ошибки при создании объекта URL, 
получении содержимого файла исходных данных или преобразования данных в строку 
класса String. Если были, то в строку состояния навигатора записывается код 
ошибки и содержимое строки sChart. Если же ошибок не было, то в строке 
состояния отображаются исходные данные:
if(errno != 0)
  showStatus("errno: " + errno + ", sChart: " + sChart);
else
  showStatus(sChart);
   На следующем этапе обработчик paint приступает к построению диаграммы.
   Первым делом создается разборщик строки исходных данных:
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));
   С помощью метода nextElement мы получаем очередное значение угла сектора и 
сохраняем его в переменной angle:
String angle = (String)st.nextElement();
   Далее с помощью конструктора класса Integer это значение преобразуется в 
численное:
AngleFromChart = new Integer(angle) ;
   Рисование сектора круговой диаграммы выполняется с помощью метода fillArc, 
который был рассмотрен в предыдущем томе “Библиотеки системного программиста”, 
посвященном языку программирования Java:
g.fillArc(0, 0, 200, 200, 
  PrevAngle, AngleFromChart.intValue());
   В качестве начального значения угла сектора используется значение из 
переменной PrevAngle. Сразу после инициализации в эту переменную записывается 
нулевое значение.
   Конечный угол сектора задается как AngleFromChart.intValue(), то есть 
указывается значение, полученное из принятого по сети файла исходных данных.
   После завершения рисования очередного сектора круговой диаграммы начальное 
значение PrevAngle увеличивается на величину угла нарисованного сектора:
PrevAngle += AngleFromChart.intValue();
   Передача данных с использованием сокетов
   В библиотеке классов Java есть очень удобное средство, с помощью которых 
м
 
<<-[Весь Текст]
Страница: из 275
 <<-