- •Java Beans
- •План лекции
- •Объектный подход
- •Понятие компонента
- •Требования к разработке компонентов
- •Контейнеры и компоненты
- •Существующие компонентные модели
- •JavaBeans
- •Интроспекция
- •Компоненты JavaBeans
- •Достоинства JavaBeans
- •Требования к компоненту JavaBeans
- •Удивительное рядом
- •Свойства
- •Простые свойства
- •Бин с простым свойством
- •Работа с простыми свойствами
- •Индексированные свойства
- •Бин с индексированным свойством
- •Работа с индексированными свойствами
- •Связанные свойства
- •Бин со связанным свойством
- •Бин со связанным свойством
- •Работа со связанными свойствами
- •Контролируемые свойства
- •Бин с контролируемым свойством
- •Бин с контролируемым свойством
- •VetoChangeListener
- •Графические компоненты
- •Графический бин
- •Графический бин
- •Работа с графическим бином
- •Модель делегирования обработки событий
- •Модель делегирования обработки событий
- •Слушатели и источники
- •События JavaBeans
- •Работа с событиями
- •Работа с событиями
- •Работа с событиями
- •Работа с событиями
- •Результат работы приложения
- •Персистентнось
- •Упаковка в Jar
- •Добавление библиотек в палитру
- •Вложенные типы
- •План лекции
- •Синтаксически корректный код
- •Вложенные типы
- •Статические вложенные классы
- •Вложенные интерфейсы
- •Нестатические вложенные классы
- •Пример внутреннего класса
- •И ещё один пример
- •И его результат…
- •Локальные классы
- •Локальные классы
- •Анонимные классы
- •Пример анонимного класса
- •Спасибо за внимание!
- •Дополнительные источники
Графический бин
...
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