Содержание
- 2. План лекции Компонентный подход в программировании Технология JavaBeans Свойства компонентов JavaBeans Графические компоненты 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 { private String message; public
- 17. Работа с простыми свойствами
- 18. Индексированные свойства Определяют доступ к массиву свойств с возможностью доступа по номеру Соглашения именования: public ТипСвойства[]
- 19. Бин с индексированным свойством public class MyBean implements java.io.Serializable { private String[] lines = new String[5];
- 20. Работа с индексированными свойствами
- 21. Связанные свойства Поддерживают механизм оповещения об изменениях значений свойств Обработчики реализуют интерфейс PropertyChangeListener и принимают объекты
- 22. Бин со связанным свойством public class MyBean implements PropertyChangeListener, Serializable { private String message; private String[]
- 23. Бин со связанным свойством ... public void setMessage(String message) { String old = this.message; this.message =
- 24. Работа со связанными свойствами
- 25. Контролируемые свойства Похожи на связанные свойства, но перед присвоением нового значения свойства оно должно быть проверено
- 26. Бин с контролируемым свойством public class MyBean implements java.io.Serializable { private String message; private final VetoableChangeSupport
- 27. Бин с контролируемым свойством ... public void setMessage(String message) { String old = this.message; try {
- 28. VetoChangeListener public class VetoChangeListener implements VetoableChangeListener { public void vetoableChange(PropertyChangeEvent evt) throws PropertyVetoException { String eventName
- 29. Графические компоненты Если компоненты содержит средства визуализации, то его суперкласом должен быть: java.awt.Component если создается компонент
- 30. Графический бин public class MyBean extends JComponent implements java.io.Serializable { private String message = "!!!"; ...
- 31. Графический бин ... public void setMessage(String message) { String old = this.message; try { vcs.fireVetoableChange("message", old,
- 32. Работа с графическим бином
- 33. Модель делегирования обработки событий Событие – объект, описывающий изменение состояния источника Источник – объект, генерирующий события
- 34. Модель делегирования обработки событий Слушатели должны зарегистрироваться у источника – события посылаются только зарегистрировавшимся слушателям Логика
- 35. Слушатели и источники Один источник может генерировать несколько типов событий Один слушатель может быть слушателем нескольких
- 36. События JavaBeans Класс слушателя должен наследовать от базового типа слушателя для вида событий EventListenerType Чтобы слушатель
- 37. Работа с событиями
- 38. Работа с событиями
- 39. Работа с событиями
- 40. Работа с событиями
- 41. Результат работы приложения
- 42. Персистентнось Способность объекта существовать во времени, переживая породивший его процесс Для JavaBeans реализуется за счет сериализации
- 43. Упаковка в Jar Класс компонента, вспомогательные классы, файлы помещаются в jar-архив В файле манифеста при этом
- 44. Добавление библиотек в палитру
- 45. Вложенные типы © Составление, Будаев Д.С., Гаврилов А.В., 2013 Лекция 9.2 УНЦ «Инфоком» Самара 2013
- 46. План лекции Понятие вложенного типа Вложенные классы и интерфейсы Внутренние классы
- 47. Синтаксически корректный код class MyFirstClass { public static void main(String[] args) { // ... } class
- 48. Вложенные типы Считаются частью внешнего типа, со всеми вытекающими правами Позволяют представить тип в виде логически
- 49. Статические вложенные классы Простейшая форма вложенного класса Может использоваться любыми классами, обладающими соответствующими правами доступа Классы,
- 50. Вложенные интерфейсы Всегда статичны (модификатор static по умолчанию) Доступ определяется доступом внешнего класса или интерфейса и
- 51. Нестатические вложенные классы Называются внутренними классами Тип находится в контексте объекта Объект внутреннего класса всегда ассоциируется
- 52. Пример внутреннего класса class ClassA { private int a = 10; protected class ClassB { private
- 53. И ещё один пример class ClassA implements Serializable { private ClassB[] arr = new ClassB[10]; {
- 54. И его результат… public class Test { public static void main(String[] args) throws Exception { ClassA
- 55. Локальные классы Описываются в теле блока Экземпляры имеют доступ к полям и методам внешнего объекта Экземпляры
- 56. Локальные классы class A { protected char a = 'a'; } class B { protected char
- 57. Анонимные классы Описываются непосредственно в выражении new и служат его частью Тип, указанный после new является
- 58. Пример анонимного класса import java.awt.*; import javax.swing.*; public class MyApplet extends JApplet { ... public void
- 59. Спасибо за внимание!
- 61. Скачать презентацию