Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
56_Java.pdf
Скачиваний:
210
Добавлен:
18.02.2016
Размер:
2.39 Mб
Скачать

Скачано с сайта http://ivc.clan.su

Модель делегирования событий

1)Если приложению требуется отреагировать на некоторое событие, оно должно реализовать блок прослушивания события соответствующего типа и зарегистрировать новый блок прослушивания для того компонента, который является источником ожидаемого события.

2)Блок прослушивания — это объект, который получает объект-событие (уведомление о событии) и должен реализовывать методы для приема и обработки события.

Методы, принимающие и обрабатывающие события, объявлены в наборе интерфейсов ***Listener, где префикс *** в имени интерфейса отражает специфику прослушиваемого события и соответствует префиксу имени класса события ***Event ( например, Action, Ajustment, Item, Text).

Интерфейсы блоков прослушивания, как и классы событий, содержатся в пакете java.awt.event.

3)Событие, генерируемое в результате действий пользователя с компонентом, передается блоку прослушивания, который зарегистрирован как заинтересованный в событиях от компонента.

4)Регистрация блока прослушивания события от компонента осуществляется вызовом метода

public void add***Listener(***Listener listener)

для данного компонента.

Параметром, передаваемым методу, является ссылка listener на объект класса, реализующего соответствующий интерфейс. Методы add***Listener определены в классах компонентов (Button,

Choice, TextField, Scrollbar и т.п.)

5) Реализация блока прослушивания события осуществляется в некотором классе приложения. При реализации интерфейса/блока прослушивания ***Listener в классе должны быть определены методы, объявленные в интерфейсе.

Метод интерфейса получает в качестве параметра объект-событие и определяет действия, которые совершает приложение в ответ на соответствующее событие. Метод вызывается после генерации события в результате действий пользователя с компонентом-источником.

В отличие от старого (JDK 1.0) способа обработки событий, в модели делегирования обработчики событий (блоки прослушивания) отделены от компонентов интерфейса пользователя, генерирующих эти события. Компонент "делегирует" событие другому объекту (блоку прослушивания), передает права на обработку этому объекту, метод которого и обеспечивает обработку данного события.

Методы, объявленные в интерфейсах для семантических событий

ActionListener

void actionPerformed(ActionEvent ae)

AdjustmentListener

void adjustmentValueChanged(AdjustmentEvent ae)

ItemListener

void itemStateChanged(ItemEvent ie)

TextListener

void textValueChanged(TextEvent te)

При описании реализации этих методов могут быть использованы методы классов-событий, например:

EventObject

Object getSource() — возвращает объект-источник события;

ActionEvent

String getActionCommand() — возвращает командную строку, связанную с действием (например, имя командной кнопки);

AdjustmentEvent

int getValue() — возвращает текущее значение полосы прокрутки;

ItemEvent

22

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]