Вступление | xiii |
От переводчика | xviii |
Благодарности | xix |
|
Часть 1. Основы Bean | 1 |
|
1. Знакомство с JavaBeans | 3 |
Преимущества компонентного программного обеспечения | 4 |
Компонентные модели | 7 |
Службы компонентной модели | 7 |
Традиционные компонентные модели | 9 |
Преимущества Java для компонентного программного обеспечения | 14 |
Переносимость | 14 |
Объектная ориентация | 14 |
Пригодность для сети | 14 |
Три В: Bean, Builder и Bridge | 15 |
Краткая история Bean | 16 |
Примеры Bean | 17 |
Выводы | 19 |
|
2. Ключевые технологии | 21 |
Настройка свойств | 21 |
Таблицы свойств | 24 |
Настройщик | 25 |
События | 26 |
Иерархия класса событий | 29 |
Иерархия приёмника событий | 30 |
Интроспекция | 30 |
Устойчивость | 33 |
Упаковка | 33 |
Связь по сети | 35 |
Загрузчики классов | 35 |
Диспетчеры безопасности | 35 |
RMI | 36 |
Разъёмы и URL | 36 |
Выводы | 36 |
|
3. Открытие ВеапВох | 39 |
Знакомство с ВеаnВох | 39 |
Знакомство со связанными Bean | 43 |
BeanBox | 44 |
BridgeTester | 44 |
ChangeReporter | 44 |
ExplicitButton | 46 |
EventMonitor | 46 |
JDBC SELECT | 47 |
JellyBean | 48 |
Juggler | 49 |
Molecule | 50 |
OrangeButton | 51 |
OurButton | 51 |
QuoteMonitor | 52 |
SorterBean | 52 |
TickTock | 53 |
TransitionalBean | 54 |
Voter Bean | 54 |
BlueBean | 54 |
Друтие необходимые вам Bean | 54 |
Размещение Bean в окне | 56 |
Редактирование свойств Bean | 59 |
Таблица свойств | 59 |
Настройщики | 61 |
Пересылка событий | 62 |
Использование связанных свойств | 65 |
Использование невидимых Bean | 67 |
Сохранение и загрузка файлов | 68 |
Создание апплета | 69 |
Выводы | 71 |
|
4. Создание простого Bean | 73 |
Bean строки | 73 |
Добавление свойств в Bean строки | 73 |
Конструирование StringBeans | 75 |
Изображения Bean | 76 |
Тестирование Bean | 77 |
Выполнение Bean | 80 |
Упаковка Bean | 81 |
Использование Bean | 83 |
Выводы | 88 |
|
Часть 2 Ключевые технологии | 89 |
|
5. Чтение сигнатур на этапе выполнения | 91 |
Пакет java.lang.reflect | 92 |
Создание экземпляров классов по имени | 93 |
Интерпретация модификаторов | 98 |
Анализ и вызов методов | 99 |
Анализ метода | 100 |
Вызов отражённых методов | 101 |
Конструирование объектов «на лету» | 103 |
Перечисление полей класса | 104 |
Обращение к массивам | 106 |
Предотвращение нарушений безопасности | 108 |
Выводы | 109 |
|
6. Посылка событий и реагирование на них | 111 |
Общее представление о делегированной модели события | 112 |
Простой пример прохождения события | 113 |
Образцы событий | 114 |
Трёхуровневые компоненты | 116 |
Инфраструктура события | 117 |
Объекты события | 118 |
События AWT | 119 |
Приёмники событий | 121 |
Классы адаптера | 123 |
События низкого уровня (компонентные) | 123 |
Компонентные события | 124 |
События контейнера | 125 |
События фокуса | 126 |
События ввода | 128 |
События мыши | 129 |
События клавиатуры | 132 |
События окна | 135 |
События высокого уровня (семантические) | 137 |
События действия | 138 |
События настройки | 139 |
События элемента | 141 |
Текстовые события | 142 |
Выводы | 143 |
|
7. Сериализация объектов | 145 |
Обеспечение сериализуемости Bean | 146 |
Сериализуемый интерфейс | 146 |
Сериализуемость графов | 147 |
Нестационарные поля | 152 |
Выполнение базовой сериализации | 155 |
Класс ObjectOutputStream | 155 |
Класс ObjectInputStream | 157 |
Настройка сериализации | 160 |
Методы readObject и writeObject | 160 |
Интерфейс Extemalizable | 160 |
Создание версий | 163 |
Идентификатор (ID) версии | 164 |
Проверка достоверности десериализованных объектов | 166 |
Создание экземпляров сериализованных Bean | 169 |
Выводы | 170 |
|
Часть 3 Архитектура JavaBeans | 173 |
|
8. Анализ Bean | 175 |
Порождение Bean info с помощью Introspector | 176 |
Идентификация атрибутов Bean из Bean info | 176 |
Дополнительные Bean info | 177 |
Пиктограммы | 178 |
Дескрипторы признаков | 178 |
Дескрипторы Bean | 180 |
Дескрипторы набора событий | 181 |
Дескрипторы свойств | 182 |
Дескрипторы методов | 184 |
Дескрипторы параметров | 185 |
Создание пользовательских классов BeanInfo | 185 |
Добавление пиктограммы в Bean | 186 |
Настраиваемые методы | 190 |
Настраиваемые свойства и события | 194 |
Изменение пути поиска BeanInfo | 197 |
Соглашения по присвоению имён, используемые в отражении низкого уровня | 197 |
Соглашения по присвоению имён для свойств | 198 |
Образцы событий | 198 |
Соглашения по присвоению имён для методов | 199 |
Выводы | 199 |
|
9. Задание свойств Bean | 201 |
Задание простых свойств | 202 |
Логические свойства | 203 |
Свойства «только для чтения» и «только для записи» | 204 |
Управление связанными свойствами | 204 |
Класс PropertyChangeSupport | 205 |
Связывание свойства | 206 |
Связывание в ВеаnВох | 209 |
Задание ограниченных свойств | 211 |
Класс VetoableChangeSupport | 212 |
Ограничение свойств в ВеапВох | 214 |
Создание списков индексированных событий | 216 |
|
10. Настройка Bean | 219 |
Создание новых редакторов свойств | 221 |
Использование строковых значений в редакторах свойств | 223 |
Загрузка редакторов свойств в компоновщики | 227 |
Регистрация редактора в диспетчере редактора свойства | 227 |
Использование класса Beanlnfo | 228 |
Изменение пути поиска редактора свойства | 229 |
Использование изображаемых редакторов свойства | 230 |
Использование редакторов свойств с тегами | 236 |
Использование мастеров настройщика | 241 |
Интерфейс настройщика | 241 |
Настройщик FilledTextArea | 242 |
Выводы | 247 |
|
11. Создание URL Bean | 249 |
Разработка Bean | 250 |
Выбор класса | 250 |
Выбор свойств | 251 |
Поддержка конструкторов | 254 |
Пользовательский интерфейс | 256 |
Тестирование Bean | 257 |
Файл утилиты make | 257 |
Метод main() | 259 |
Доводка Bean | 260 |
Выбор дополнительных свойств | 260 |
Действия с помощью методов | 263 |
Реагирование на события | 264 |
Запуск событий | 266 |
Непрерывная перезагрузка | 266 |
Вывод изображений на экран | 268 |
Завершённая программа | 272 |
Усовершенствование Bean | 278 |
Bean Info | 278 |
Присоединение Customizer | 286 |
Расширение URLBean | 288 |
Проектирование: классы, объекты, образцы и компоненты | 289 |
Особенности | 289 |
Выводы | 291 |
|
Приложение А |
Краткий справочник | 293 |
Классы | 294 |
BeanDescriptor | 294 |
Bean | 294 |
EventSetDescriptor | 296 |
FeatureDescriptor | 298 |
IndexedPtopertyDescriptor | 299 |
Introspector | 301 |
MethodDescriptor | 302 |
ParameterDescriptor | 302 |
PtopertyChangeEvent | 302 |
ProperyChangeSupport | 303 |
PtopertyDescriptor | 304 |
PropertyEditorManager | 306 |
PtopertyEditorSupport | 306 |
SimpleBeanInfo | 308 |
VetoableChangeSupport | 309 |
Интерфейсы | 310 |
Beanlnfo | 310 |
Customizer | 311 |
PtopertyChangeListener | 312 |
PropertyEditor | 312 |
VetoableChangeListener | 314 |
Visibility | 314 |
Исключительные ситуации | 315 |
IntrospectionException | 315 |
PropertyVetoException | 315 |
|
Приложение В |
Дополнительные ресурсы | 317 |
Web-сайты | 317 |
JavaSoft | 317 |
Cafe au Lait | 317 |
Gamelan | 318 |
JavaWorld | 318 |
Сетевые конференции и списки рассылки | 318 |
От автора | 319] |
|
Глоссарий | 321 |