Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
82
Добавлен:
24.02.2016
Размер:
257.54 Кб
Скачать

Комбобокс (или выпадающие списки)

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

Применяя меню выбора (класс 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().

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

При изменении выбора в меню (CheckBox) генерируется событие ItemEvent. Интерфейс для обработки - ItemListener, в нем один метод - itemStateChanged(). Для обработки этого события нет смысла использовать Adapter:

// вставили переключатель

Choice myChoice=new Choice();

myChoice.addItem("Элемент 1");

myChoice.addItem("Элемент 2");

myChoice.addItem("Элемент 3");

add(myСhoice);

// добавили обработку события

myChoice.addItemListener(new ItemListener() {

public void itemStateChanged(ItemEvent e ) {

// обработка события

String str = myChoice.getSelectItem();

myButton.setLabel("Изменили состояние переключателя - "+str);

}

}

//...

Списки

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

Для создания списка необходимо создать объект класса 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()позволяет определить, разрешен ли для списка множественный выбор.

Обработка событий от списка в Java 1.1

При выборе строки (или нескольких строк) из списка класса List пользователь делает двойной щелчок на выбранном пункте, и вырабатывается событие ActionEvent, если же пользователь просто выбрал какой-то пункт, то вырабатывается событие ItemEvent. Для прослушивания этих событий соответственно используются интерфейсы ActionListener и ItemListener. Каждый из интерфейсов имеет по одному методу, паоэтому обработку можно сделать, не используя адаптеры:

List myList=new List(3, true);

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

myList.addItem("1st item");

myList.addItem("2nd item");

myList.addItem("3rd item");

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

add(myList);

myList.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { String str = "Double click "+myList.getSelectedItem(); button1.setLabel(str); } }); myList.addItemListener(new java.awt.event.ItemListener() { public void itemStateChanged(ItemEvent e) { String str = "State change "+myList.getSelectedItem(); button1.setLabel(str); } });