Пакет java.beans
Содержит классы, связанные с разработкой компонентов — компонентов на основе архитектуры JavaBeans™. Некоторые классы используются компонентами во время их работы в приложении. Например, классы событий используются компонентами, которые генерируют события изменения свойств и события вето (см. PropertyChangeEvent). Однако большинство классов в этом пакете предназначены для использования редактором компонентов (то есть, средой разработки для настройки и компоновки компонентов для создания приложения). В частности, эти классы помогают редактору компонентов создать пользовательский интерфейс, который пользователь может использовать для настройки компонента. Например, компонент может содержать свойство специального типа, с которым редактор компонентов может не знать, как справиться. Используя интерфейс PropertyEditor, разработчик компонентов может предоставить редактор для этого специального типа.
Для минимизации ресурсов, используемых компонентом, классы, используемые редакторами компонентов, загружаются только при редактировании компонента. Они не нужны, когда компонент работает в приложении, и поэтому не загружаются. Эта информация хранится в так называемом bean-info (см. BeanInfo).
Если не указано иное, значения null или пустые строки не являются допустимыми параметрами для методов в этом пакете. Вы можете ожидать появления исключений, если эти параметры будут использоваться.
Долговременное хранение
С версии v1.4 пакетjava.beans предоставляет поддержку долговременного хранения — чтения и записи компонента как текстового представления его значений свойств. Значения свойств рассматриваются как компоненты и рекурсивно считываются или записываются для захвата их публичного состояния. Этот подход подходит для долговременного хранения, поскольку он полагается только на публичный API, а не на, вероятно, изменяющуюся приватную реализацию.
Примечание: Схема хранения не может автоматически инициализировать пользовательские внутренние классы, такие как обработчики событий. Используя класс EventHandler вместо внутренних классов для пользовательских обработчиков событий, можно избежать этой проблемы. Вы читаете и записываете компоненты в формате XML, используя классы XMLDecoder и XMLEncoder соответственно. Отличительной чертой схемы хранения является то, что чтение компонента не требует специальных знаний о нем.
С другой стороны, запись компонента иногда требует специальных знаний о типе компонента. Если состояние компонента может быть выражено только с помощью конструктора без аргументов и публичных методов получения и установки свойств, специальные знания не требуются. В противном случае компонент требует пользовательского делегата хранения — объекта, отвечающего за запись компонентов определенного типа. Все классы, предоставленные в JDK, унаследованные от java.awt.Component, а также все их свойства, автоматически имеют делегаты хранения.
Если вам нужно (или вы хотите) предоставить делегата хранения для компонента, вы можете сделать это, используя экземпляр DefaultPersistenceDelegate или создав свой собственный подкласс PersistenceDelegate. Если единственная причина, по которой компонент нуждается в делегате хранения, заключается в том, что вы хотите вызвать конструктор компонента со значениями свойств в качестве аргументов, вы можете создать делегата хранения компонента с помощью одноаргументного конструктора DefaultPersistenceDelegate. В противном случае вам нужно реализовать собственный делегат хранения, для чего вам, вероятно, понадобятся следующие классы:
PersistenceDelegate- Абстрактный класс, от которого происходят все делегаты хранения. Ваш подкласс должен использовать свои знания о типе компонента для предоставления необходимых
StatementиExpressionдля создания компонента и восстановления его состояния. Statement- Представляет вызов одного метода для объекта. Включает набор аргументов метода.
Expression- Подкласс
Statement, используемый для методов, возвращающих значение.
После создания делегата хранения вы регистрируете его, используя метод setPersistenceDelegate класса XMLEncoder.
Связанная документация
Для получения обзора, архитектуры и документации по учебникам см.:- JavaBeans, учебный курс в Java Tutorial.
- Долговременное хранение, статья в Swing Connection.
| Интерфейс | Описание |
|---|---|
| AppletInitializer | Устаревший. API для апплетов устарело. |
| BeanInfo | Используйте интерфейс |
| Customizer | Класс customizer предоставляет полный настраиваемый пользовательский интерфейс для настройки целевого Java-компонента. |
| DesignMode | Этот интерфейс предназначен для реализации, или делегирования, экземплярами java.beans.beancontext.BeanContext, для распространения текущего свойства "designTime" вложенной иерархии экземпляров java.beans.beancontext.BeanContextChild. |
| ExceptionListener | ExceptionListener уведомляется об внутренних исключениях. |
| PropertyChangeListener | Событие "PropertyChange" генерируется всякий раз, когда компонент изменяет "связанное" свойство. |
| PropertyEditor | Класс PropertyEditor предоставляет поддержку для пользовательских интерфейсов, которые хотят позволить пользователям редактировать значение свойства заданного типа. |
| VetoableChangeListener | Событие VetoableChange генерируется всякий раз, когда компонент изменяет "ограниченное" свойство. |
| Visibility | В некоторых случаях компонент может выполняться на серверах, где графический интерфейс пользователя недоступен. |
| Класс | Описание |
|---|---|
| BeanDescriptor | BeanDescriptor предоставляет глобальную информацию о "бин", включая его класс Java, его отображаемое имя и т. д. |
| Beans | Этот класс предоставляет методы управления некоторыми общими бин. |
| DefaultPersistenceDelegate |
|
| Encoder |
|
| EventHandler | Класс |
| EventSetDescriptor | EventSetDescriptor описывает группу событий, которые генерирует данный Java-бин. |
| Expression | Объект |
| FeatureDescriptor | Класс FeatureDescriptor — это общий базовый класс для PropertyDescriptor, EventSetDescriptor, MethodDescriptor и т. д. |
| IndexedPropertyChangeEvent | Событие "IndexedPropertyChange" доставляется всякий раз, когда компонент, соответствующий спецификации JavaBeans™ (”бин”), изменяет связанное индексированное свойство. |
| IndexedPropertyDescriptor | IndexedPropertyDescriptor описывает свойство, которое работает как массив и имеет индексированный метод чтения и/или индексированный метод записи для доступа к конкретным элементам массива. |
| Introspector | Класс Introspector предоставляет стандартный способ для инструментов узнать о свойствах, событиях и методах, поддерживаемых целевым Java-бином. |
| MethodDescriptor | MethodDescriptor описывает конкретный метод, который поддерживается Java-бином для внешнего доступа из других компонентов. |
| ParameterDescriptor | Класс ParameterDescriptor позволяет разработчикам бинов предоставлять дополнительную информацию о каждом из их параметров, помимо информации о типах низкого уровня, предоставляемой классом java.lang.reflect.Method. |
| PersistenceDelegate | Класс PersistenceDelegate отвечает за выражение состояния экземпляра данного класса в терминах методов публичного API класса. |
| PropertyChangeEvent | Событие "PropertyChange" доставляется всякий раз, когда бин изменяет "связанное" или "ограниченное" свойство. |
| PropertyChangeListenerProxy | Класс, расширяющий |
| PropertyChangeSupport | Это вспомогательный класс, который может использоваться бинaми, поддерживающими связанные свойства. |
| PropertyDescriptor | PropertyDescriptor описывает одно свойство, которое Java-бин экспортирует с помощью пары методов-акцессоров. |
| PropertyEditorManager | PropertyEditorManager можно использовать для поиска редактора свойств для любого заданного имени типа. |
| PropertyEditorSupport | Это вспомогательный класс для создания редакторов свойств. |
| SimpleBeanInfo | Это вспомогательный класс, чтобы упростить создание классов BeanInfo. |
| Statement | Объект |
| VetoableChangeListenerProxy | Класс, расширяющий |
| VetoableChangeSupport | Это вспомогательный класс, который могут использовать бины, поддерживающие ограниченные свойства. |
| XMLDecoder | Класс |
| XMLEncoder | Класс |
| Исключение | Описание |
|---|---|
| IntrospectionException | Выбрасывается при возникновении исключения во время интроспекции. |
| PropertyVetoException | PropertyVetoException выбрасывается, когда предполагаемое изменение свойства представляет неприемлемое значение. |
| Тип аннотации | Описание |
|---|---|
| BeanProperty | Аннотация, используемая для указания некоторых свойств, связанных с информацией для автоматически сгенерированных классов |
| ConstructorProperties | Аннотация на конструкторе, показывающая, как параметры этого конструктора соответствуют методам-геттерам созданного объекта. |
| JavaBean | Аннотация, используемая для указания некоторых свойств, связанных с информацией для автоматически сгенерированных классов |
| Transient | Указывает, что атрибут, называемый "transient", должен быть объявлен с указанным |
© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/java/beans/package-summary.html