Содержание
- 2. План лекции Компонентный подход JavaBeans Свойства компонентов Графические компоненты События и их обработка Персистентность Упаковка компонентов
- 3. Объектный подход vs Компонентный подход Объектный подход Программа пишется как объектная модель реальной или воображаемой системы,
- 4. Понятие компонента Компонент – это элемент системы, представляющий определенную службу или сущность, допускающий взаимодействие с другими
- 5. Требования к разработке компонентов Полная документация Более строгое тестирование Надежная проверка достоверности входных данных Возврат полезных
- 6. Контейнеры и компоненты Контейнер предоставляет контекст, в котором компоненты могут существовать и действовать совместно Контейнер тоже
- 7. Существующие компонентные модели JavaBeans Enterprise JavaBeans .Net Framework Components ActiveX COM DCOM CORBA VLC & CLX
- 8. JavaBeans Компонентная модель для языка Java Компоненты называются Beans (бины) Компонент описывается как класс, удовлетворяющий определенным
- 9. Интроспекция Средства работы с бинами подвергают бины интроспекции Интроспекция – механизм, основанный на рефлексии, позволяющий определить
- 10. Компоненты JavaBeans Компонент имеет свойства, которые представляют собой характеристики компонента и могут быть изменены в процессе
- 11. Достоинства JavaBeans Компактность Переносимость Поддержка механизмов интроспекции Способность к работе в графической среде быстрой разработки приложений
- 12. Требования к компоненту JavaBeans Способность к инстанцированию нового экземпляра (бин – не интерфейс, не абстрактный класс)
- 13. Удивительное рядом Нет общего супер-класса для бинов API пакета java.beans предоставляет только классы поддержки функционирования компонентов
- 14. Свойства Виды свойств по способу доступа Допускающие запись Допускающие чтение Виды свойств по сложности Простые Индексированные
- 15. Простые свойства Доступны пользователю как пара методов доступа (setter/getter) Любой из этих методов может отсутствовать, определяя
- 16. Бин с простым свойством package beans; public class MyBean implements java.io.Serializable { public MyBean() { }
- 17. Работа с простыми свойствами
- 18. Индексированные свойства Определяют доступ к массиву свойств с возможностью доступа по номеру Соглашения именования: public ТипСвойства[]
- 19. Бин с индексированным свойством public class MyBean implements java.io.Serializable { private String[] lines = new String[5];
- 20. Работа с индексированными свойствами
- 21. Связанные свойства Поддерживают механизм оповещения об изменениях значений свойств Обработчики реализуют интерфейс PropertyChangeListener и принимают объекты
- 22. Бин со связанным свойством package beans; import java.beans.PropertyChangeListener; import java.beans.PropertyChangeSupport; public class MyBean implements java.io.Serializable {
- 23. Бин со связанным свойством public void setMessage(String message) { String old = this.message; this.message = message;
- 24. Работа со связанными свойствами
- 25. Контролируемые свойства Похожи на связанные свойства, но перед присвоением нового значения оно должно быть проверено обработчиками
- 26. Бин с контролируемым свойством package beans; import java.beans.PropertyVetoException; import java.beans.VetoableChangeListener; import java.beans.VetoableChangeSupport; ... public class MyBean
- 27. Бин с контролируемым свойством ... public void setMessage(String message) { String old = this.message; try {
- 28. Графические компоненты Если компоненты содержит средства визуализации, то его суперкласом должен быть: java.awt.Component если создается компонент
- 29. Графический бин package beans; import java.beans.*; import javax.swing.*; import java.awt.*; public class MyBean extends JComponent implements
- 30. Графический бин ... public void setMessage(String message) { String old = this.message; try { vcs.fireVetoableChange("message", old,
- 31. Работа с графическим бином
- 32. Модель делегирования обработки событий Событие – объект, описывающий изменение состояния источника Источник – объект, генерирующий события
- 33. Модель делегирования обработки событий Слушатели должны зарегистрироваться у источника – события посылаются только зарегистрировавшимся слушателям Логика
- 34. Слушатели и источники Один источник может генерировать несколько типов событий Один слушатель может быть слушателем нескольких
- 35. События JavaBeans Класс слушателя должен наследовать от базового типа слушателя для вида событий EventListenerType Чтобы слушатель
- 36. Работа с событиями
- 37. Работа с событиями
- 38. Работа с событиями
- 39. Работа с событиями
- 40. Результат работы приложения
- 41. Персистентнось Способность объекта существовать во времени, переживая породивший его процесс Для JavaBeans реализуется за счет сериализации
- 42. Упаковка в Jar Класс компонента, вспомогательные классы, файлы помещаются в jar-архив В файле манифеста при этом
- 43. Добавление библиотек в палитру
- 44. Вложенные типы Занятие 7.2
- 45. План лекции Вложенные типы Вложенные классы Вложенные интерфейсы Внутренние классы Особенности внутренних классов Локальные классы Анонимные
- 46. Синтаксически корректный код class MyFirstClass { public static void main(String[] args) { // ... } class
- 47. Вложенные типы Считаются частью внешнего типа, со всеми вытекающими правами Позволяют представить тип в виде логически
- 48. Статические вложенные классы Nested class Простейшая форма вложенного класса Может использоваться любыми классами, обладающими соответствующими правами
- 49. Вложенные интерфейсы Всегда статичны (модификатор static по умолчанию) Доступ определяется доступом внешнего класса или интерфейса и
- 50. Нестатические вложенные классы Называются внутренними (inner) классами Тип находится в контексте объекта Объект внутреннего класса всегда
- 51. Пример внутреннего класса class ClassA { private int a = 10; protected class ClassB { private
- 52. И ещё один пример import java.io.*; interface Interface extends Serializable { int getA(); } class ClassA
- 53. И его результат… public class Test { public static void main(String[] args) throws Exception { ClassA
- 54. Локальные классы Описываются в теле блока Экземпляры имеют доступ к полям и методам внешнего объекта Экземпляры
- 55. Анонимные классы Описываются непосредственно в выражении new и служат его частью Тип, указанный после new является
- 56. Пример анонимного класса import java.awt.*; import javax.swing.*; public class MyApplet extends JApplet { ... public void
- 57. Спасибо за внимание!
- 59. Скачать презентацию