Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Занятие 13.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
193.54 Кб
Скачать

Классы событий

В заключение главы рассмотрим некоторые аспекты, связанные с обработкой событий. Сконцентрируем наше внимание в основном на классах и интерфейсах, которые при этом используются.

Из предыдущего примера мы уже знаем, что событие описывается объектом. Обычно объект события описывает и содержит информацию об основных параметрах, связанных с событием и вызвавшим его компонентом. Если есть объект, то должен быть и класс. Для возможных событий описана иерархия классов, в вершине которой находится класс Event Object из пакета java.util. Основная часть классов событий описана в пакете java.awt.event. Это система классов событий, используемых в библиотеке AWT для обработки событий. Но несколько классов событий все же описаны в библиотеке Swing — в пакете javax.swing.event. Некоторые классы событий из пакета java.awt.event перечислены в табл. 2.

Класс события

Описание

ComponentEvent

Событие происходит при изменении компонента, скрытии, отображении, изменении размера и прочее

ContainerEvent

Событие происходит при добавлении (удалении) компонента в контейнер(из контейнера)

InputEvent

Абстрактный суперкласс для классов, описывающих события, связанные с вводом для компонентов

TextEvent

Событие происходит при изменении значения текстового поля или текстовой области

Некоторые классы событий из пакета javax.swing.event (библиотека Swing) представлены в табл. 3.

Табл. 3. Классы событий пакета javax. swing. event

Класс события

Описание

AncestorEvent

Событие связано с добавлением, удалением или перемещением объекта-предка компонента

CaretEvent

Событие связано с изменением позиции курсора в текстовом компоненте

ChangeEvent

Событие происходит при изменении состояния компонента

Hypeг1inkEvent

Событие связано с операциями с гиперссылкой

ListDataEvent

Событие происходит при изменении содержимого списка

ListSelectionEvent

Событие происходит при выборе (отмене выбора) элемента списка

MenuEvent

Событие генерируется при выборе или отмене выбора пункта меню

TableModelEvent

Событие связано с изменением модели таблицы

TreeExpansionEvent

Событие связано с разворачиванием или сворачиванием дерева

TreeModelEvent

Событие связано с изменением модели дерева

TreeSelectionEvent

Событие происходит при выборе узла дерева

На каждое из этих событий предусмотрен специальный обработчик, который специальным образом нужно регистрировать в объекте - по­тенциальном источнике события (то есть в компоненте графического интерфейса). Для регистрации обработчиков применяются разные методы - в зависимости от типа обрабатываемого исключения..Если известно название для класса исключения, то с большой вероятностью можно восстановить имя метода, с помощью которого в компоненте регистрируется обработчик для соответствующего события. Имя метода, которым регистрируется обработчик, начинается со слова add. Затем следует имя события. Имя события можно узнать по имени класса, если из имени класса события убрать слово Event. После этого в имени метода следует слово Listener. Если мы обрабатываем событие класса СобытиеEvent, то метод для регистрации обработчика такого события в компоненте будет, скорее всего, называться addCo6ытиеListener(). Например, для регистрации обработчика события ActionListener мы использовали метод addActionListener (). Аргументом методу регистрации обработчика, как уже отмечалось, является объект обработчика (об этом несколько позже).

Регистрацию обработчика в компоненте можно отменить. Для этого также есть специальный метод. Имя метода для отмены регистрации получаем из имени метода для регистрации обработчика, если заменим add на remove. Другими словами, метод для отмены регистрации имеет структуру removeCo6btmueListener(). Например - removeActionListener (). Аргументом методу передается объект обработчика (регистрация которого отменяется).

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