Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
80
Добавлен:
08.06.2015
Размер:
841.73 Кб
Скачать

Графический бин

...

public void setMessage(String message) { String old = this.message;

try {

vcs.fireVetoableChange("message", old, message); this.message = message; pcs.firePropertyChange("message", old, message); repaint();

} catch (PropertyVetoException e) { this.message = old;

}

}

...

}

31

Работа с графическим бином

32

Модель делегирования обработки событий

Событие – объект, описывающий изменение состояния источника

Источник – объект, генерирующий события

Слушатель – объект, получающий уведомление о событии

Источник генерирует событие и посылает его одному или нескольким слушателям

Слушатель просто ждет поступления события

Получив событие, слушатель обрабатывает его и затем возвращает управление

33

Модель делегирования обработки событий

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

Логика кода, обрабатывающего события, отделена от логики интерфейса, генерирующего события

Это реализация паттерна проектирования Observer

34

Слушатели и источники

Один источник может генерировать несколько типов событий

Один слушатель может быть слушателем нескольких видов событий

Один слушатель может получать события одного вида от нескольких источников

Слушатель может быть источником для других слушателей и для самого себя

Источник может быть слушателем других источников и самого себя

35

События JavaBeans

Класс слушателя должен наследовать от базового типа слушателя для вида событий EventListenerType

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

public void addEventListenerType(EventListenerType a)

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

public void removeEventListenerType(EventListenerType a)

Если компонент позволяет регистрировать одновременно ограниченное количество обработчиков события, то метод добавления слушателя должен объявлять исключение java.util.TooManyListenersException

Работа с событиями также может вестись на уровне средства разработки

36

Работа с событиями

37

Работа с событиями

38

Работа с событиями

39

Работа с событиями

40