Module
java.desktop
Package java.beans
包含与开发bean相关的类 - 基于JavaBeans架构的组件。
bean中的一些类在应用程序中运行时使用。
例如,事件类被bean使用,该bean会触发属性和可变更改事件(请参阅
PropertyChangeEvent
)。
但是,此包中的大多数类都是由bean编辑器(即用于自定义和组合bean以创建应用程序的开发环境)使用的。
特别地,这些类帮助bean编辑器创建一个用户界面来定制该bean。
例如,bean可能包含bean编辑器可能不知道如何处理的特殊类型的属性。
通过使用PropertyEditor
接口,bean开发人员可以为此特殊类型提供编辑器。
为了最小化bean使用的资源,bean编辑器使用的类只有在编辑bean时加载。 当bean在应用程序中运行时,并不需要它们,因此不会被加载。 这些信息保存在所谓的bean-info中(参见BeanInfo
)。
除非明确说明,否则空值或空字符串不是此程序包中方法的有效参数。 如果使用这些参数,可能会看到异常。
长期坚持
从v1.4开始,java.beans
包为长期持久化提供支持 - 读取和写入一个bean作为其属性值的文本表示形式。
属性值被视为bean,并被递归地读取或写入以捕获它们的公开可用状态。
这种方法适用于长期存储,因为它仅依赖于公共API,而不是可能发生变更的私有实现。
Note: The persistence scheme cannot automatically instantiate custom inner classes, such as you might use for event handlers. By using theEventHandler
class instead of inner classes for custom event handlers, you can avoid this problem.
您分别使用XMLDecoder
和XMLEncoder
类读取和写入XML格式的bean 。 持久性方案的一个显着特征是在bean中读取不需要bean的特殊知识。
另一方面,写出一个bean有时需要bean的类型的特殊知识。 如果bean的状态只能使用无参数构造函数和public getter和setter方法表示,则不需要特殊的知识。 否则,bean需要一个自定义持久性委托 - 负责编写特定类型的bean的对象。 JDK中提供的从java.awt.Component
所有类以及其所有属性都将自动具有持久java.awt.Component
。
如果您需要(或选择)为bean提供持久代理 ,则可以使用DefaultPersistenceDelegate
实例或创建自己的PersistenceDelegate
子类来PersistenceDelegate
。 如果bean需要持久性委托的唯一原因是因为要使用属性值作为参数调用bean的构造函数,则可以使用单参数DefaultPersistenceDelegate
构造函数来创建bean的持久性委托。 否则,您需要实现您自己的持久代理,您可能需要以下类:
-
PersistenceDelegate
-
200新新新新旗新新200新新新旗新新旗新新200新新200新新200新新200新新200新新200新新200新新200新新200新新200新新200新新200新新200
您的子类应该使用其对bean类型的了解,以提供任何创建bean并恢复其状态的
Statement
和Expression
。 -
Statement
- X- 包含一组方法参数。
-
Expression
-
用于返回值的方法的
Statement
的子类。
创建持久setPersistenceDelegate
,您可以使用setPersistenceDelegate
方法进行XMLEncoder
。
相关文档
有关概述,架构和教程文档,请参阅:- JavaBeans , Java教程中的一个小径。
- Long-Term Persistence , Swing Connection中的一篇文章。
-
接口摘要 接口 描述 AppletInitializer Deprecated. Applet API已被弃用。BeanInfo 使用BeanInfo
接口创建一个BeanInfo
类,并提供关于bean的方法,属性,事件和其他功能的显式信息。Customizer 定制器类提供了一个完整的自定义GUI来定制目标Java Bean。DesignMode 该接口旨在由java.beans.beancontext.BeanContext的实例实现或委派,以便传播到java.beans.beancontext.BeanContextChild实例(当前的“designTime”)属性的嵌套层次结构。ExceptionListener 通知内部异常的ExceptionListener。PropertyChangeListener 一旦bean更改“bound”属性,就会触发“PropertyChange”事件。PropertyEditor PropertyEditor类提供对允许用户编辑给定类型的属性值的GUI的支持。VetoableChangeListener 当一个bean更改“constrained”属性时,VetoableChange事件就被触发。Visibility 在某些情况下,可能在GUI不可用的服务器上运行bean。 -
类摘要 Class 描述 BeanDescriptor BeanDescriptor提供有关“bean”的全局信息,包括其Java类,其displayName等。Beans 这个类提供了一些通用的bean控制方法。DefaultPersistenceDelegate DefaultPersistenceDelegate
是抽象PersistenceDelegate
类的具体实现,默认情况下用于不提供信息的类的委托。Encoder 一个Encoder
是一个类,可用于创建根据其公共API编码JavaBean集合的状态的文件或流。EventHandler EventHandler
类提供对动态生成事件侦听器的支持,该侦听器的方法执行涉及传入事件对象和目标对象的简单语句。EventSetDescriptor EventSetDescriptor描述给定的Java Bean触发的一组事件。Expression 一个Expression
对象表示一个原始表达式,其中单个方法应用于目标和一组参数以返回结果 - 如"a.getFoo()"
。FeatureDescriptor FeatureDescriptor类是PropertyDescriptor,EventSetDescriptor和MethodDescriptor等的常见基类。IndexedPropertyChangeEvent 只要符合JavaBeans¢规范(“bean”)的组件更改绑定的索引属性,就会传递“IndexedPropertyChange”事件。IndexedPropertyDescriptor IndexedPropertyDescriptor描述了一个像数组一样的属性,并且具有索引的读取和/或索引的写入方法来访问数组的特定元素。Introspector Introspector类提供了一种标准的工具来了解目标Java Bean支持的属性,事件和方法。MethodDescriptor MethodDescriptor描述了Java Bean支持的特定方法,用于从其他组件进行外部访问。ParameterDescriptor ParameterDescriptor类允许bean实现者提供关于每个参数的附加信息,超出java.lang.reflect.Method类提供的低级类型信息。PersistenceDelegate PersistenceDelegate类负责根据类的公共API中的方法来表达给定类的实例的状态。PropertyChangeEvent 只要bean更改“bound”或“constrained”属性,就会传递一个“PropertyChange”事件。PropertyChangeListenerProxy 一个类扩展了EventListenerProxy
专门用于添加一个“绑定”属性的PropertyChangeListener
。PropertyChangeSupport 这是一个可以由支持绑定属性的bean使用的实用程序类。PropertyDescriptor PropertyDescriptor描述了Java Bean通过一对访问器方法导出的一个属性。PropertyEditorManager PropertyEditorManager可用于查找任何给定类型名称的属性编辑器。PropertyEditorSupport 这是一个帮助构建属性编辑器的支持类。SimpleBeanInfo 这是一个支持类,使人们更容易提供BeanInfo类。Statement 一个Statement
对象表示一个原始语句,其中单个方法应用于目标和一组参数 - 如"a.setFoo(b)"
。VetoableChangeListenerProxy 一个类扩展了EventListenerProxy
专门用于添加一个具有“约束”属性的VetoableChangeListener
。VetoableChangeSupport 这是一个可以由支持约束属性的bean使用的实用程序类。XMLDecoder XMLDecoder
类用于读取使用XMLEncoder
创建的XML文档,并且像ObjectInputStream
那样使用。XMLEncoder 所述XMLEncoder
类是互补替代ObjectOutputStream
,并且可以用于产生以相同的方式,该一个 JavaBean的文本表示ObjectOutputStream
可以用来创建的二进制表示Serializable
对象。 -
异常摘要 异常 描述 IntrospectionException 内省时发生异常时抛出。PropertyVetoException 当对属性的建议更改表示不可接受的值时,将抛出PropertyVetoException。 -
注解类型摘要 Annotation Type 描述 BeanProperty 用于为自动生成的BeanInfo
类指定一些属性相关信息的注释。ConstructorProperties 一个构造函数上的注释,显示了该构造函数的参数对应于构造的对象的getter方法。JavaBean 用于为自动生成的BeanInfo
类指定一些类相关信息的注释。Transient 表示当Introspector
构造与注释代码元素相关联的一个PropertyDescriptor
或EventSetDescriptor
类时,应使用给定的value
声明一个名为“transient”的属性。