Графические интерфейсы пользователя Java. Тимур Машнин
Чтение книги онлайн.

Читать онлайн книгу Графические интерфейсы пользователя Java - Тимур Машнин страница 8

СКАЧАТЬ style="font-size:15px;">      И это означает, что вы можете отделить сам пользовательский интерфейс от кода обработки событий, в отличие от ранней модели, где вы должны были для обработки события переопределять метод самого компонента пользовательского интерфейса.

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

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

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

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

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

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

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

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

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

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

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

      Эта модель называется «делегирование».

      Она реализует шаблон проектирования Observer.

      Таким образом, эта модель обеспечивает четкое разделение между компонентами GUI и обработкой событий.

      Важно, чтобы любой объект, а не только компонент, мог получать события.

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

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

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

      Модель делегирования важна для JavaBeans, которые позволяют взаимодействовать между Java и другими платформами.

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

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

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

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

      В Java 1.1 это не требуется.

      Событие будет передано СКАЧАТЬ