Пакет 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.

Связанная документация

Для получения обзора, архитектуры и документации по учебникам см.:
Интерфейс Описание
AppletInitializer Устаревший.
API для апплетов устарело.
BeanInfo

Используйте интерфейс BeanInfo для создания класса 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

DefaultPersistenceDelegate — это конкретная реализация абстрактного класса PersistenceDelegate и является по умолчанию делегатом для классов, о которых нет доступной информации.

Encoder

Encoder — это класс, который можно использовать для создания файлов или потоков, кодирующих состояние набора JavaBeans в терминах их публичных API.

EventHandler

Класс EventHandler предоставляет поддержку динамического создания слушателей событий, методы которых выполняют простое утверждение, вовлекая объект входящего события и целевой объект.

EventSetDescriptor

EventSetDescriptor описывает группу событий, которые генерирует данный Java-бин.

Expression

Объект Expression представляет примитивное выражение, в котором к целевому объекту и набору аргументов применяется один метод для получения результата — как в "a.getFoo()".

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

Класс, расширяющий EventListenerProxy, специально для добавления PropertyChangeListener со "связанным" свойством.

PropertyChangeSupport

Это вспомогательный класс, который может использоваться бинaми, поддерживающими связанные свойства.

PropertyDescriptor

PropertyDescriptor описывает одно свойство, которое Java-бин экспортирует с помощью пары методов-акцессоров.

PropertyEditorManager

PropertyEditorManager можно использовать для поиска редактора свойств для любого заданного имени типа.

PropertyEditorSupport

Это вспомогательный класс для создания редакторов свойств.

SimpleBeanInfo

Это вспомогательный класс, чтобы упростить создание классов BeanInfo.

Statement

Объект Statement представляет примитивное утверждение, в котором к целевому объекту и набору аргументов применяется один метод — как в "a.setFoo(b)".

VetoableChangeListenerProxy

Класс, расширяющий EventListenerProxy, специально для добавления VetoableChangeListener с "ограниченным" свойством.

VetoableChangeSupport

Это вспомогательный класс, который могут использовать бины, поддерживающие ограниченные свойства.

XMLDecoder

Класс XMLDecoder используется для чтения XML-документов, созданных с помощью XMLEncoder, и используется так же, как ObjectInputStream.

XMLEncoder

Класс XMLEncoder — это альтернатива ObjectOutputStream и используется для генерации текстового представления JavaBean таким же образом, как ObjectOutputStream может использоваться для создания двоичного представления объектов Serializable.

Исключение Описание
IntrospectionException

Выбрасывается при возникновении исключения во время интроспекции.

PropertyVetoException

PropertyVetoException выбрасывается, когда предполагаемое изменение свойства представляет неприемлемое значение.

Тип аннотации Описание
BeanProperty

Аннотация, используемая для указания некоторых свойств, связанных с информацией для автоматически сгенерированных классов BeanInfo.

ConstructorProperties

Аннотация на конструкторе, показывающая, как параметры этого конструктора соответствуют методам-геттерам созданного объекта.

JavaBean

Аннотация, используемая для указания некоторых свойств, связанных с информацией для автоматически сгенерированных классов BeanInfo.

Transient

Указывает, что атрибут, называемый "transient", должен быть объявлен с указанным value при построении Introspector классов PropertyDescriptor или EventSetDescriptor, связанных с аннотированным элементом кода.

© 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

Spec-Zone .ru
спецификации, руководства, описания, API