Программирование на JAVA

Навигация

Лекция 1. Что такое Java? История создания

Лекция 2. Основы объектно-ориентированного программирования

Лекция 3. Лексика языка

Лекция 4. Типы данных

Лекция 5. Имена. Пакеты

Лекция 6. Объявление классов

Лекция 7. Преобразование типов

Лекция 8. Объектная модель в Java

Лекция 9. Массивы

Лекция 10. Операторы и структура кода. Исключения

Лекция 11. Пакет java.awt

Лекция 12. Потоки выполнения. Синхронизация

Лекция 13. Пакет java.lang

Лекция 14. Пакет java.util

Лекция 15. Пакет java.io

Лекция 16. Введение в сетевые протоколы


Подпись:
Обработка пользовательских событий

Весь предыдущий раздел "Дерево компонентов" был посвящен зада­нию внешнего вида пользовательского интерфейса. Однако до сих пор он был статическим. Перейдем теперь к рассмотрению правил обработки Различных событий, которые могут возникать как результат действий пользователя, и не только.

Модель обработки событий построена на основе стандартного шабло-113 Проектирования ООП ОЬэеп/ег/ОЬзеп/аЫе. В качестве наблюдаемого

363

Курс

Пакет j va. awt

объекта выступает тот или иной компонент AWT. Для него можно задать один или несколько классов-наблюдателей. В AWT они называются слуща_ телями (listener) и описываются специальными интерфейсами, название которых оканчивается на слово Listener. Когда с наблюдаемым объектом что-то происходит, создается объект "событие" (event), который "посылает­ся" всем слушателям. Так слушатель узнает, например, о действии пользо­вателя и может на него отреагировать.

Каждое событие является подклассом класса java.util.EventObject События пакета AWT, которые и рассматриваются в данной лекции, явля­ются подклассами java.awt.AWTEvent. Для удобства классы различных событий и интерфейсы слушателей помешены в отдельный пакет java. awt. event.

Прежде, чем углубляться в особенности событий, рассмотрим, как они применяются на практике, на примере простейшего события -ActionEvent.

Событие ActionEvent

Рассмотрим появление события ActionEvent на примере нажатия на кнопку.

Предположим, в нашем приложении создается кнопка сохранения файла:

Button save = new Buttonf'Save"); add(save);

Теперь, когда окно приложения с этой кнопкой появится на экране, пользователь сможет нажать ее. В результате AWT сгенерирует ActionEvent. Чтобы получить и обработать его, необходимо зарегистрировать слушате­ля. Название нужного интерфейса прямо следует из названия события -ActionListener. В нем всего один метод (в некоторых слушателях их не­сколько), который имеет один аргумент — ActionEvent.

Объявим класс, который реализует этот интерфейс:

class SaveButtonListener implements ActionListener { private Frame parent;

public SaveButtonListener(Frame parentFrame) { parent = parentFrame;

}

public void actionPerformed(ActionEvent e) {