Пакет java.beans
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.
- Долгосрочное хранение данных, статья в The Swing Connection.
- Since:
- 1.1
| Класс | Описание |
|---|---|
| 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, 2025, 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://download.java.net/java/early_access/jdk24/docs/api/java.desktop/java/beans/package-summary.html