|
action обрабатывает событие, вызванное списками, - выбор элемента из
списка.
Прежде всего, метод action сохраняет ссылку на список, в котором произошел
выбор, в переменной ch:
List ch;
ch = (List)evt.target;
Далее выполняется проверка факта, что событие вызванно именно списоком
класса List, а затем обрабатываются события, созданные списками:
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(ch.getSelectedIndex() == 3)
setBackground(Color.black);
else if(ch.getSelectedIndex() == 4)
setBackground(Color.red);
else if(ch.getSelectedIndex() == 5)
setBackground(Color.blue);
}
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 if(ch.getSelectedIndex() == 3)
setForeground(Color.yellow);
else if(ch.getSelectedIndex() == 4)
setForeground(Color.green);
else if(ch.getSelectedIndex() == 5)
setForeground(Color.white);
}
else
return false;
С помощью метода getSelectedIndex метод action определяет номер выбранного
элемента списка, устанавливая соответствующим образом цвет фона или изображения.
Затем метод перерисовывает окно аплета, вызывая метод repaint.
Метод handleEvent
Для того чтобы отследить выделение элементов списка, наш аплет переопределил
метод handleEvent, обеспечив обработку события с идентификатором Event.
LIST_SELECT.
Переопределение метода handleEvent нужно делать внимательно, так как этот
метод вызывается при возникновении разных событий, например, при перемещении
мыши в окне аплета. Если ваш метод handleEvent не обрабатывает какое-либо
событие, он должен передать его одноименному методу из базового класса.
Наш метод handleEvent прежде всего проверяет код события, обрабатывая только
события Event.LIST_SELECT, которые создаются при выделении пользователем
элементов списка:
if(evt.id == Event.LIST_SELECT)
{
. . .
}
else
return super.handleEvent(evt);
Если со
|
|