Пакет java.beans
PropertyChangeEvent). Однако большинство классов в этом пакете предназначено для использования редактором компонентов (то есть, средой разработки для настройки и компоновки компонентов для создания приложения). В частности, эти классы помогают редактору компонентов создать пользовательский интерфейс, который пользователь может использовать для настройки компонента. Например, компонент может содержать свойство специального типа, с которым редактор компонентов может не знать, как работать. Используя интерфейс PropertyEditor, разработчик компонентов может предоставить редактор для этого специального типа. Для минимизации ресурсов, используемых компонентом, классы, используемые редакторами компонентов, загружаются только при редактировании компонента. Они не нужны, когда компонент работает в приложении, и поэтому не загружаются. Эта информация сохраняется в так называемом bean-info (см. BeanInfo).
Если явно не указано иное, значения null или пустые строки не являются допустимыми параметрами для методов в этом пакете. Можно ожидать исключений, если эти параметры используются.
Долговременное хранение
По состоянию на версию 1.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.
- Долговременное хранение, статья в The Swing Connection.
| Класс | Описание |
|---|---|
| AppletInitializer | Устаревший, подлежит удалению: Этот элемент API может быть удален в будущей версии. API Applet устарел. |
| BeanDescriptor | BeanDescriptor предоставляет общую информацию о "бине", включая его Java-класс, его имя и т.д. |
| BeanInfo | Используйте интерфейс BeanInfo для создания класса BeanInfo и предоставления явной информации о методах, свойствах, событиях и других функциях ваших бинов. |
| BeanProperty | Аннотация, используемая для указания некоторых данных, связанных со свойствами, для автоматически сгенерированных классов BeanInfo. |
| Beans | Этот класс предоставляет некоторые методы общего назначения для управления бинами. |
| ConstructorProperties | Аннотация на конструкторе, показывающая, как параметры этого конструктора соответствуют методам-геттерам объекта, созданного этим конструктором. |
| Customizer | Класс 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, 2023, 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/21/docs/api/java.desktop/java/beans/package-summary.html