Spec-Zone.ru › OpenJDK 17

Пакет java.beans

package 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, учебный маршрут в The Java Tutorial.
  • Долговременное сохранение, статья в The Swing Connection.
Пакет Описание
java.beans.beancontext
Предоставляет классы и интерфейсы, связанные с контекстом компонентов.
Класс Описание
AppletInitializer Устарело, подлежит удалению: Этот элемент API может быть удален в будущих версиях.
API для апплетов устарел.
BeanDescriptor
BeanDescriptor предоставляет общую информацию о "компоненте", включая его класс Java, его отображаемое имя и т.д.
BeanInfo
Используйте интерфейс BeanInfo для создания класса BeanInfo и предоставления явной информации о методах, свойствах, событиях и других особенностях ваших компонентов.
BeanProperty
Аннотация, используемая для указания некоторой информации, связанной со свойством, для автоматически генерируемых классов BeanInfo.
Beans
Этот класс предоставляет некоторые методы общего управления компонентами.
ConstructorProperties
Аннотация на конструкторе, показывающая, как параметры этого конструктора соответствуют методам-геттерам объекта, созданного этим конструктором.
Customizer
Класс кастомайзера предоставляет полную настраиваемую графическую среду для настройки целевого Java-компонента.
DefaultPersistenceDelegate
DefaultPersistenceDelegate — это конкретная реализация абстрактного класса PersistenceDelegate и является делегатом по умолчанию для классов, о которых нет доступной информации.
DesignMode
Этот интерфейс предназначен для реализации, или делегирования, экземплярами java.beans.beancontext.BeanContext, для распространения текущего свойства «designTime» в его вложенной иерархии экземпляров java.beans.beancontext.BeanContextChild.
Encoder
Encoder — это класс, который может использоваться для создания файлов или потоков, кодирующих состояние набора JavaBeans в терминах их публичных API.
EventHandler
Класс EventHandler предоставляет поддержку для динамического генерирования обработчиков событий, чьи методы выполняют простое утверждение, включающее объект входящего события и целевой объект.
EventSetDescriptor
EventSetDescriptor описывает группу событий, которые генерирует данный Java-компонент.
ExceptionListener
ExceptionListener получает уведомления о внутренних исключениях.
Expression
Объект Expression представляет собой примитивное выражение, в котором один метод применяется к целевому объекту и набору аргументов для возвращения результата — как в "a.getFoo()".
FeatureDescriptor
Класс FeatureDescriptor является общим базовым классом для PropertyDescriptor, EventSetDescriptor, MethodDescriptor и т.д.
IndexedPropertyChangeEvent
Событие "IndexedPropertyChange" срабатывает всякий раз, когда компонент, соответствующий спецификации JavaBeans («компонент»), изменяет связанное индексированное свойство.
IndexedPropertyDescriptor
IndexedPropertyDescriptor описывает свойство, которое ведет себя как массив и имеет индексированный метод чтения и/или индексированный метод записи для доступа к определенным элементам массива.
IntrospectionException
Выбрасывается, когда во время интроспекции происходит исключение.
Introspector
Класс Introspector предоставляет стандартный способ для инструментов узнать о свойствах, событиях и методах, поддерживаемых целевым Java-компонентом.
JavaBean
Аннотация, используемая для указания некоторой информации, связанной с классом, для автоматически генерируемых классов BeanInfo.
MethodDescriptor
MethodDescriptor описывает конкретный метод, который поддерживается Java-компонентом для внешнего доступа из других компонентов.
ParameterDescriptor
Класс ParameterDescriptor позволяет реализаторам компонентов предоставлять дополнительную информацию о каждом из параметров, помимо информации о типе низкого уровня, предоставляемой классом java.lang.reflect.Method.
PersistenceDelegate
Класс PersistenceDelegate несет ответственность за выражение состояния экземпляра данного класса в терминах методов публичного API класса.
PropertyChangeEvent
Событие «PropertyChange» срабатывает всякий раз, когда компонент изменяет «связанное» или «ограниченное» свойство.
PropertyChangeListener
Событие «PropertyChange» генерируется всякий раз, когда компонент изменяет «связанное» свойство.
PropertyChangeListenerProxy
Класс, расширяющий EventListenerProxy, специально для добавления PropertyChangeListener с «связанным» свойством.
PropertyChangeSupport
Это вспомогательный класс, который может использоваться компонентами, поддерживающими связанные свойства.
PropertyDescriptor
PropertyDescriptor описывает одно свойство, которое Java-компонент экспортирует через пару методов-аксессоров.
PropertyEditor
Класс PropertyEditor предоставляет поддержку для графических интерфейсов, которые хотят позволить пользователям редактировать значение свойства заданного типа.
PropertyEditorManager
PropertyEditorManager может использоваться для поиска редактора свойств для любого заданного имени типа.
PropertyEditorSupport
Это вспомогательный класс для построения редакторов свойств.
PropertyVetoException
PropertyVetoException выбрасывается, когда предполагаемое изменение свойства представляет собой неприемлемое значение.
SimpleBeanInfo
Это вспомогательный класс, который упрощает создание классов BeanInfo.
Statement
Объект Statement представляет собой примитивное утверждение, в котором один метод применяется к целевому объекту и набору аргументов — как в "a.setFoo(b)".
Transient
Указывает, что атрибут, названный «transient», должен быть объявлен с данным value, когда Introspector создает классы PropertyDescriptor или EventSetDescriptor, связанные с аннотированным элементом кода.
VetoableChangeListener
Событие VetoableChange срабатывает всякий раз, когда компонент изменяет «ограниченное» свойство.
VetoableChangeListenerProxy
Класс, расширяющий EventListenerProxy, специально для добавления VetoableChangeListener с «ограниченным» свойством.
VetoableChangeSupport
Это вспомогательный класс, который можно использовать для компонентов, поддерживающих ограниченные свойства.
Visibility
В некоторых ситуациях компонент может запускаться на серверах, где нет графического интерфейса.
XMLDecoder
Класс XMLDecoder используется для чтения XML-документов, созданных с помощью XMLEncoder, и используется так же, как ObjectInputStream.
XMLEncoder
Класс XMLEncoder — это альтернативный способ, дополняющий ObjectOutputStream, и может использоваться для генерации текстового представления JavaBean аналогично тому, как ObjectOutputStream может использоваться для создания двоичного представления объектов Serializable.

© 1993, 2021, 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/17/docs/api/java.desktop/java/beans/package-summary.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API