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

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

 
liveinternet.ru: показано количество просмотров и посетителей

Библиотека :: Компьютеры и Программирование :: А.В. Фролов, Г.В. Фролов - Microsoft Visual J++
<<-[Весь Текст]
Страница: из 275
 <<-
 
nfo возвращает информацию об аплете ChoiceList.
   Метод init
   В методе init мы создаем два списка как объекты класса Choice:
chBackgroundColor = new Choice();
chForegroundColor = new Choice();
   Созданные списки пока пустые, но мы можем добавить их в окно аплета, вызвав 
метод add:
add(chBackgroundColor);
add(chForegroundColor);
   Сразу после добавления списков мы их заполняем, вызывая для соответствующих 
объектов метод addItem:
chBackgroundColor.addItem("Yellow");
chBackgroundColor.addItem("Green");
chBackgroundColor.addItem("White");

chForegroundColor.addItem("Black");
chForegroundColor.addItem("Red");
chForegroundColor.addItem("Blue");
   Элементы, добавленные в список первыми, будут выбраны в списке по умолчанию. 
В нашем случае будет выбран фон желтого цвета и изображение черного цвета.
   Такие же цвета мы устанавливаем для окна аплета, вызывая методы 
setBackground и setForeground:
setBackground(Color.yellow);
setForeground(Color.black);
   Метод action
   Метод action обрабатывает событие, вызванное списками, - выбор элемента из 
списка.
   Прежде всего, метод action сохраняет ссылку на список, в котором произошел 
выбор, в переменной ch:
Choice ch;
ch = (Choice)evt.target;
   Далее выполняется проверка факта, что событие вызванно именно списком, после 
чего происходит анализ, в каком именно списке сделан выбор нового элемента:
if(evt.target.equals(chBackgroundColor))
{
  if(ch.getSelectedIndex() == 0)
    setBackground(Color.yellow);
  else if(ch.getSelectedIndex() == 1)
    setBackground(Color.green);
  else if(ch.getSelectedIndex() == 2)
    setBackground(Color.white);
}
else if(evt.target.equals(chForegroundColor))
{
  if(ch.getSelectedIndex() == 0)
    setForeground(Color.black);
  else if(ch.getSelectedIndex() == 1)
    setForeground(Color.red);
  else if(ch.getSelectedIndex() == 2)
    setForeground(Color.blue);
}
else
  return false;
   Обратите внимание, что мы вначале выполняем преобразование типа evt.target к 
классу Choice, а только затем проверяем, действительно ли событие вызвано 
списком. Правильно ли это?
   Вообще говоря, неправильно. Так как в поле evt.target могут находиться 
ссылки на объекты различных классов, в процессе выполнения преобразования типов 
может произойти исключение. Если предпринимается попытка выполнить 
преобразование для несовместимых типов. Но так как в нашем аплете события 
создаются только списками, исключение не возникает.
   Корректнее было бы вначале проверить ссылку evt.target на принаддлежность к 
классу Choi
 
<<-[Весь Текст]
Страница: из 275
 <<-