|
|||||||||
软件包 java.beans
包含与开发 beans 有关的类,即基于 JavaBeansTM 架构的组件。请参见:
描述
接口摘要 | |
---|---|
AppletInitializer | 此接口设计用于与 java.beans.Beans.instantiate 联合使用。 |
BeanInfo | 希望提供有关其 bean 的显式信息的 bean 实现者可以提供某个 BeanInfo 类,该类实现此 BeanInfo 接口并提供有关其 bean 的方法、属性、事件等显式信息。 |
Customizer | customizer 类提供一个用来自定义目标 Java Bean 的完全自定义 GUI。 |
DesignMode | 此接口由 java.beans.beancontext.BeanContext 的实例实现或委托,以便将当前的 "designTime" 属性传播到 java.beans.beancontext.BeanContextChild 实例的嵌套层次结构。 |
ExceptionListener | 在发生内部异常时获得通知的 ExceptionListener。 |
PropertyChangeListener | 无论 bean 何时更改 "bound" 属性,都会激发一个 "PropertyChange" 事件。 |
PropertyEditor | PropertyEditor 类为希望允许用户编辑某个给定类型的属性值的 GUI 提供支持。 |
VetoableChangeListener | 无论 bean 何时更改 "constrained" 属性,都会激发一个 VetoableChange 事件。 |
Visibility | 在某些情况下,bean 可能运行在 GUI 不可用的服务器上。 |
类摘要 | |
---|---|
BeanDescriptor | BeanDescriptor 提供有关 "bean" 的全局信息,其中包括其 Java 类、其 displayName 等等。 |
Beans | 此类提供一些通用的 bean 控制方法。 |
DefaultPersistenceDelegate | DefaultPersistenceDelegate 是 PersistenceDelegate 抽象类的具体实现,是没有关于其可用信息的类在默认情况下使用的委托。 |
Encoder | Encoder 类用于创建根据其公共 API 对 JavaBeans 集合的状态进行编码的文件或流。 |
EventHandler | EventHandler 类为动态生成事件侦听器提供支持,这些侦听器的方法执行一条涉及传入事件对象和目标对象的简单语句。 |
EventSetDescriptor | 描述给定 Java bean 激发的一组事件的 EventSetDescriptor。 |
Expression | Expression 对象表示基本表达式,其中将单个方法应用于某一目标和一组参数,以返回结果,比如 "a.getFoo()" 。 |
FeatureDescriptor | FeatureDescriptor 类是 PropertyDescriptor、EventSetDescriptor 和 MethodDescriptor 等的公共基类。 |
IndexedPropertyChangeEvent | 无论何时遵守 JavaBeans |
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 | 这是一个实用工具类,支持 bound 属性的 bean 可以使用该类。 |
PropertyDescriptor | PropertyDescriptor 描述 Java Bean 通过一对存储器方法导出的一个属性。 |
PropertyEditorManager | PropertyEditorManager 可用于查找任何给定类型名称的属性编辑器。 |
PropertyEditorSupport | 这是一个帮助构建属性编辑器的支持类。 |
SimpleBeanInfo | 这是一个使得用户提供 BeanInfo 类更容易的支持类。 |
Statement | Statement 对象表示基本语句,其中将单个方法应用于某一目标和一组参数,以返回结果,比如 "a.setFoo(b)" 。 |
VetoableChangeListenerProxy | 扩展 EventListenerProxy 的类,特别适用于将 VetoableChangeListener 与 "constrained" 属性相关联。 |
VetoableChangeSupport | 这是一个实用工具类,支持 constrained 属性的 bean 可以使用此类。 |
XMLDecoder | XMLDecoder 类用于读取使用 XMLEncoder 创建的 XML 文档,用途类似于 ObjectInputStream 。 |
XMLEncoder | XMLEncoder 类是 ObjectOutputStream 的互补替换,可用于生成 JavaBean 的文本表示形式,所使用方式与用 ObjectOutputStream 创建 Serializable 对象的二进制表示形式的方式相同。 |
异常摘要 | |
---|---|
IntrospectionException | 在 Introspection 期间发生异常时抛出的异常。 |
PropertyVetoException | 当某一属性的提议更改表示一个不可接受的值时,将抛出 PropertyVetoException。 |
软件包 java.beans 的描述
包含与开发 beans 有关的类,即基于 JavaBeansTM 架构的组件。少数类可由 bean 使用,也能以应用程序的形式运行。例如,event 类由激发属性和禁止更改事件的 bean 使用(参见 PropertyChangeEvent
)。不过,此包中的大多数类由 bean 编辑器(即自定义 bean 并将其汇集起来以创建应用程序的开发环境)使用。特别要指出的是,这些类帮助 bean 编辑器创建用户可以用来自定义 bean 的用户界面。例如,bean 可能包含 bean 编辑器也许不知道如何处理的特殊类型的属性。通过使用 PropertyEditor
接口,bean 开发人员可以为此特殊类型提供一个编辑器。
为了最大限度地减少 bean 使用的资源,只在要编辑 bean 时加载 bean 编辑器使用的类。当 bean 以应用程序的形式运行时,不需要这些类,所以不用加载它们。此信息在称为 bean-info 的类中(参见 BeanInfo
)。
除非显式声明,否则 null 值或空 String 对于此包中的方法是无效参数。如果使用这些参数,可能将引发异常。
长期持久性
从 v1.4 开始,java.beans
包提供了对长期持久性 的支持,即以其属性值的文本表示形式读取或写入 bean。这些属性值被视为 bean,它们被递归地读取或写入,以捕获其公共可用状态。此方法适用于长期存储,因为它只依赖于公共 API 而不是很可能发生更改的私有实现。
注: 持久性方案无法自动实例化自定义内部类,比如用于事件处理程序的类。通过使用EventHandler
类而不是自定义事件处理程序的内部类,可以避免此问题。
可分别使用 XMLDecoder
和 XMLEncoder
类读取和写入 XML 格式的 bean。持久性方案的一个显著特性是,读入 bean 不需要该 bean 的特定信息。
另一方面,读出 bean 有时需要 bean 类型的特定信息。如果可以只使用属性的无参数构造方法以及公共 getter 和 setter 方法表达 bean 的状态,则无需 bean 的特定信息。否则,bean 需要一个自定义持久委托,即负责写出特殊类型的 bean 的对象。从 java.awt.Component
中遗传的 JDK 中提供的所有类及其所有属性都将自动拥有持久委托。
如果需要(或选择)为 bean 提供持久委托,则可以通过使用 DefaultPersistenceDelegate
实例或通过创建自己的 PersistenceDelegate
子类来实现。如果 bean 需要持久委托的惟一原因是因为用户想调用 bean 使用属性值作为参数的构造方法,则可以使用无参数的 DefaultPersistenceDelegate
构造方法创建 bean 的持久委托。否则,用户需要实现自己的持久委托,对此,可能需要以下类:
PersistenceDelegate
-
这是一个抽象类,所有持久委托都是从它遗传的。子类应该使用它所知的 bean 类型信息来提供创建 bean 和恢复其状态所需的任何
Statement
和Expression
。 Statement
- 表示某一对象上的单个方法的调用。包括该方法的参数集合。
Expression
-
用于返回一个值的那些方法的
Statement
的子类。
一旦创建了一个持久委托,就可以使用 XMLEncoder
的 setPersistenceDelegate
方法注册它。
相关文档
有关概述、架构和教程文档的信息,请参阅:- JavaBeans,《The Java Tutorial》中的一部分。
- Long-Term Persistence,The Swing Connection 中的一篇文章。
所有类
|
|||||||||