- •Java Beans
- •План лекции
- •Объектный подход
- •Понятие компонента
- •Требования к разработке компонентов
- •Контейнеры и компоненты
- •Существующие компонентные модели
- •JavaBeans
- •Интроспекция
- •Компоненты JavaBeans
- •Достоинства JavaBeans
- •Требования к компоненту JavaBeans
- •Удивительное рядом
- •Свойства
- •Простые свойства
- •Бин с простым свойством
- •Работа с простыми свойствами
- •Индексированные свойства
- •Бин с индексированным свойством
- •Работа с индексированными свойствами
- •Связанные свойства
- •Бин со связанным свойством
- •Бин со связанным свойством
- •Работа со связанными свойствами
- •Контролируемые свойства
- •Бин с контролируемым свойством
- •Бин с контролируемым свойством
- •VetoChangeListener
- •Графические компоненты
- •Графический бин
- •Графический бин
- •Работа с графическим бином
- •Модель делегирования обработки событий
- •Модель делегирования обработки событий
- •Слушатели и источники
- •События JavaBeans
- •Работа с событиями
- •Работа с событиями
- •Работа с событиями
- •Работа с событиями
- •Результат работы приложения
- •Персистентнось
- •Упаковка в Jar
- •Добавление библиотек в палитру
- •Вложенные типы
- •План лекции
- •Синтаксически корректный код
- •Вложенные типы
- •Статические вложенные классы
- •Вложенные интерфейсы
- •Нестатические вложенные классы
- •Пример внутреннего класса
- •И ещё один пример
- •И его результат…
- •Локальные классы
- •Локальные классы
- •Анонимные классы
- •Пример анонимного класса
- •Спасибо за внимание!
- •Дополнительные источники
Достоинства JavaBeans
Компактность
Переносимость
Поддержка механизмов интроспекции
Способность к работе в графической среде быстрой разработки приложений (RAD)
11
Требования к компоненту JavaBeans
Способность к инстанцированию нового экземпляра (бин – не интерфейс, не абстрактный класс)
Наличие конструктора по умолчанию (конструктора без параметров)
Возможность сериализации
Следование соглашениям об именах и способах проектирования
Использование модели делегирования обработки событий
12
Удивительное рядом
Нет общего супер-класса для бинов
API пакета java.beans предоставляет только классы поддержки функционирования компонентов JavaBeans
Нет никакого специализированного языка описания интерфейсов
13
Свойства
Виды свойств по способу доступа
Допускающие записьДопускающие чтение
Виды свойств по сложности
ПростыеИндексированныеСвязанныеКонтролируемые
14
Простые свойства
Доступны пользователю как пара методов доступа (setter/getter)
Любой из этих методов может отсутствовать, определяя таким образом доступность свойства для чтения/записи (read-only/write-only)
Соглашения именования:
Общий вид
public ТипСвойства getИмяСвойства()
public void setИмяСвойства(ТипСвойства значение)
Логические свойства
public boolean isИмяСвойства()
public void setИмяСвойства(boolean значение)
15
Бин с простым свойством
package beans;
public class MyBean implements java.io.Serializable {
private String message;
public MyBean() {
}
public String getMessage() { return message;
}
public void setMessage(String message) {
this.message = message;
}
}
16
Работа с простыми свойствами
17
Индексированные свойства
Определяют доступ к массиву свойств с возможностью доступа по номеру
Соглашения именования:
public ТипСвойства[] getИмяСвойства()
public void setИмяСвойства (ТипСвойства[] значения)
public ТипСвойства getИмяСвойства
(int индекс)
public void setИмяСвойства
(int индекс, ТипСвойства значение)
18
Бин с индексированным свойством
public class MyBean implements java.io.Serializable { private String[] lines = new String[5];
public String[] getLines() { return lines;
}
public void setLines(String[] lines) { this.lines = lines;
}
public String getLines(int index) { return lines[index];
}
public void setLines(int index, String line) { this.lines[index] = line;
}
}
19
Работа с индексированными свойствами
20