Скачать книгу

в качестве слушателя для этого события, независимо от того, что другие объекты делают с событием.

      Наконец, эта модель событий представляет идею очереди событий.

      Вместо того, чтобы переопределять handleEvent для просмотра всех событий, вы можете заглянуть в очередь событий системы, используя класс EventQueue.

      В Java 1.1 каждый компонент является источником события, который может генерировать определенные типы событий, которые являются подклассами класса AWTEvent.

      Объекты, которые интересуются событием, называются слушателями.

      Каждый тип события соответствует интерфейсу прослушивателя, который определяет методы, вызываемые при возникновении события.

      Чтобы получить событие, объект должен реализовать соответствующий интерфейс слушателя и должен быть зарегистрирован в источнике события, путем вызова метода «add listener» компонента, который генерирует событие.

      И мы это уже видели.

      Здесь мы создаем кнопку и присоединяем к ней слушателя, как экземпляр анонимного класса, который реализует интерфейс слушателя.

      В этом классе мы переопределяем обработчик событий, метод интерфейса слушателя.

      Как только объект зарегистрирован, метод actionPerformed будет вызываться всякий раз, когда пользователь делает что-либо в компоненте, который генерирует событие действия.

      В некотором роде метод actionPerformed очень похож на метод action старой модели событий, за исключением того, что он не привязан к иерархии Component, а он является частью интерфейса, который может быть реализован любым объектом, который заинтересован в получении событий.

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

      Некоторые интерфейсы слушателей предназначены для работы с несколькими типами событий.

      Например, интерфейс MouseListener объявляет пять методов обработки различных типов событий мыши: мышь вниз, мышь вверх, щелчок, вход мыши в компонент и выход мыши.

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

      Это звучит как создание излишнего кода; большую часть времени вас интересует только одно или два из этих событий.

      К счастью, вам этого делать не нужно.

      Вы можете использовать класс адаптера, который обеспечивает нулевую реализацию всех методов интерфейса.

      И если вы хотите написать класс обработки событий, который имеет дело только с щелчками мыши, вы можете объявить, что ваш класс расширяет MouseAdapter.

      И ваша единственная задача программирования состоит в том, чтобы переопределить единственный метод, который вам нужен – это mouseClicked.

      Таким образом, резюмируя.

      Компоненты генерируют AWTEvents, когда что-то происходит.

      Различные подклассы AWTEvent представляют различные типы

Скачать книгу