Тимур Машнин

Графические интерфейсы пользователя Java


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

target="_blank" rel="nofollow" href="#image32_5d55f58996b5ff4756d0fce3_jpg.jpeg"/>

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

      Например, когда пользователь нажимает на мышь, низлежащая среда выполнения генерирует событие, которое оно отправляет в программу.

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

      Процедурное программирование, которое рассматривается как традиционное программирование, определяет процесс программирования как разработку процедур, которые прямо управляют потоком данных и элементами контроля.

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

      Эти модели программирования отличаются потоком выполнения и структурой.

      В AWT существуют две разные модели событий или способы обработки событий.

      В Java 1.0 и ранее события отправлялись непосредственно соответствующим компонентам.

      Сами события были инкапсулированы в один класс Event.

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

      Таким образом, в этой ранней модели обработчики событий, такие как action и handleEvent, были реализованы классом Component.

      И версии этих методов по умолчанию ничего не делали и возвращали false.

      Эта модель событий была заменена моделью Java 1.1.

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

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

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

      В модели событий Java 1.1 вся функциональность обработки событий содержится в пакете java.awt. event.

      Внутри этого пакета подклассы абстрактного класса AWTEvent представляют собой различные виды событий.

      Класс AWTEvent и его подклассы заменяют Event предыдущей модели событий.

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

      Эти интерфейсы определяют методы, вызываемые при возникновении событий соответствующего типа.

      Пакет также содержит ряд классов адаптеров.

      Они реализуют интерфейсы EventListener и являются абстрактными классами, которые предоставляют нулевые реализации методов соответствующего прослушивателя.

      Эти классы удобны для создания объектов-слушателей.

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