Пакет 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, учебный маршрут в The Java Tutorial.
- Долговременное сохранение, статья в The Swing Connection.
| Класс | Описание |
|---|---|
| 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