Обработка событий от меню выбора

Обработка событий от флажка

Для обработки событий от флажков (щелчок мышью на флажке свидетельствует об изменении состояния переключателя) следует внести в метод action() контейнера, содержащего эти флажки, следующий фрагмент:

// процесс обработки событий от флажка

if(evt.target instanceof Checkbox)

{ // получаем ссылку на флажок, вызвавший событие

Checkbox check=(Checkbox)evt.target;

// проверка, от какого именно флажка пришло событие и

// обработка этого события от конкретного флажка

.............................................

return true; // если событие обработано, иначе return false }

2.3 Меню выбора (или выпадающие списки)

Меню выбора (выпадающие списки) фактически являются всплывающими меню, они дают возможность создавать список элементов выбора, который всплывает на экране в виде меню.

Применяя меню выбора (класс Choice), можно выбирать только один элемент - множественный выбор не разрешается. При необходимости множественного выбора придется воспользоваться раскрывающимся списком (см. следующий пункт).

Приведем пример создания выпадающего списка:

// создать меню выбора

Choice choice=new Choice();

// добавить в него элементы

choice.addItem("1st item");

choice.addItem("2nd item");

// добавить меню choice в контейнер

add(choice);

// добавить в меню элемент

choice.addItem("3rd item");

Здесь сначала создается объект Choice, а затем в него задаются различные элементы выбора. Далее меню вводится в контейнер. Нужно отметить, что совсем не обязательно задавать все элементы выбора в меню до его ввода в контейнер. В контейнер можно вводить и пустое меню, добавляя элементы выбора по мере необходимости.

Рассмотрим некоторые методы класса Choice. Количество элементов выбора в меню можно определить при помощи метода countItem(), добавляются элементы в меню методом addItem(), а получить название какого-либо элемента (его строковое представление) по его порядковому номеру можно с помощью функции getItem().

Для того, чтобы определить индекс и строковое представление выбранного в меню элемента, предназначены методы getSelectIndex() и getSelectItem(). Изменить выбор в меню можно при помощи метода select().

Для обработки событий от меню выбора (одинарный щелчок мышью на элементе меню свидетельствует о выборе элемента) следует внести в метод action() контейнера, содержащего эти меню выбора, следующий фрагмент:

// процесс обработки событий от меню выбора

if(evt.target instanceof Choice)

{// получаем ссылку на меню выбора, вызвавшее событие

Choice choice=(Choice)evt.target;

// проверка, от какого именно меню выбора пришло событие

// и обработка этого события от конкретного меню выбора

.............................................

return true; // если событие обработано, иначе return false }

2.4 Раскрывающиеся списки

Раскрывающиеся списки особенно полезны, если необходимо объединить функциональные возможности меню с возможностью множественного выбора элементов.

Для создания списка необходимо создать объект класса List и ввести в него любые элементы. Затем необходимо этот объект добавить в контейнер:

// создать список с тремя видимыми элементами и с возможностью

// множественного выбора (передача true во втором параметре)

List list=new List(3, true);

// добавить в него элементы

list.addItem("1st item");

list.addItem("2nd item");

list.addItem("3rd item");

// добавить список list в контейнер

add(list);

Рассмотрим некоторые методы класса List. Количество элементов выбора в списке можно определить при помощи метода countItem(). Добавляются элементы в список методом addItem(), удаляются из него методом delItem(). Для очистки всего списка используется метод clear(). Для того, чтобы заменить элемент с заданным номером, используется метод replaceItem(). Получить название какого-либо элемента (его строковое представление) по его порядковому номеру можно с помощью функции getItem().

Для того, чтобы определить индекс(ы) и строковое(ые) представление(ия) выбранного(ных) в списке элемента(ов), предназначены методы getSelectIndex() (getSelectIndexes()) и getSelectItem() (getSelectItems()). Элемент можно выделить как выбранный в списке при помощи метода select(). Снять выделение с помеченного элемента можно методом deselect(). Проверить, является ли элемент выделенным, можно при помощи метода isSelected().

Методом getRows() можно определить количество одновременно видимых элементов списка (его высоту). Методом makeVisible() можно осуществить прокрутку в списке так, чтобы элемент с заданным индексом стал видим.

Метод setMultipleSelections() разрешает или запрещает выбор нескольких элементов одновременно, а метод allowsMultipleSelections() позволяет определить, разрешен ли для списка множественный выбор.