Сайт разработчика Александр Климова

/* Моя кошка замечательно разбирается в программировании. Стоит мне объяснить проблему ей - и все становится ясно. */
John Robbins, Debugging Applications, Microsoft Press, 2000

Обработка событий

Обработка событий основана на модели делегирования событий (delegation event model) - источник извещает о событии одного или несколько слушателей (listener). Слушатель ждёт до тех пор, пока не получит извещение о событии. При получении слушатель обрабатывает его и возвращает управления. Слушатель должен регистрироваться источником, чтобы получать извещения о событиях. Таким образом уведомления посылаются только тем слушателям, которые желают их получать.

Событие - это специальный объект, описывающий изменение состояния источника. Это может быть, например, щелчок кнопки, ввод символа с клавиатуры, выбор элемента в списке и т.д. Событие может происходит и без участия пользователя, например, при использовании таймера. Также можно создавать собственные события.

Источник регистрирует слушателей через отдельные методы регистрации. Как правило, имена методов имеют форму addТипListener(ТипListener listener) или setТипListener(ТипListener listener).

Тип - это имя события, а listener - ссылка на слушателя событий.

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

Основной класс для событий - класс EventObject, который содержит два метода getSource() и toString().

Подклассы: ConnectionEvent, HandshakeCompletedEvent, NodeChangeEvent, PreferenceChangeEvent, PropertyChangeEvent, RowSetEvent, SSLSessionBindingEvent, StatementEvent и др.

Класс InputEvent

Абстрактный класс InputEvent является суперклассом для события ввода компонента и имеет два подкласса KeyEvent и MotionEvent.

Класс KeyEvent

Объект класса KeyEvent создаётся при клавиатурном вводе. Класс определяет множество целочисленных констант для клавиш, а также различные методы.

Реклама