java.lang.Object
java.beans.PropertyEditorManager
PropertyEditorManager可以用于查找任何给定类型名称的属性编辑器。此属性编辑器必须支持java.beans.PropertyEditor接口,用于编辑给定对象。
PropertyEditorManager使用三种技术来查找给定类型的编辑器。首先,它提供了registerEditor方法,允许为给定类型专门注册编辑器。其次,它尝试通过在给定类型的完全限定类名后添加“Editor”(例如“foo.bah.FozEditor”)来定位一个合适的类。最后,它获取简单类名(不包括包名),在包路径中添加“Editor”并查找匹配的类。
因此,对于输入类foo.bah.Fred,PropertyEditorManager首先会查看其表格,看看是否已为foo.bah.Fred注册了编辑器,如果有,则使用该编辑器。然后它会查找foo.bah.FredEditor类。然后它会查找(例如)standardEditorsPackage.FredEditor类。
默认的PropertyEditors将为Java原始类型“boolean”、“byte”、“short”、“int”、“long”、“float”和“double”提供支持;以及java.lang.String、java.awt.Color和java.awt.Font类。
- 自版本:
- 1.1
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic PropertyEditorfindEditor(Class<?> targetType) 为给定目标类型查找一个值编辑器。static String[]获取将用于搜索属性编辑器的包名称。static voidregisterEditor(Class<?> targetType, Class<?> editorClass) 注册一个编辑器类以编辑给定目标类的值。static voidsetEditorSearchPath(String[] path) 更改将用于查找属性编辑器的包名称列表。
-
Constructor Details
-
PropertyEditorManager
public PropertyEditorManager()构造一个PropertyEditorManager。
-
-
Method Details
-
registerEditor
注册一个编辑器类以编辑给定目标类的值。如果编辑器类为null,则将删除任何现有定义。因此,此方法可用于取消注册。如果目标或编辑器类被卸载,注册将被自动取消。如果存在安全管理器,则将调用其
checkPropertiesAccess方法。这可能导致SecurityException。- 参数:
-
targetType- 要编辑的类型的类对象 -
editorClass- 编辑器类的类对象 - 抛出:
-
SecurityException- 如果存在安全管理器且其checkPropertiesAccess方法不允许设置系统属性 - 参见:
-
findEditor
为给定目标类型查找一个值编辑器。- 参数:
-
targetType- 要编辑的类型的Class对象 - 返回:
- 给定目标类的编辑器对象。如果找不到合适的编辑器,则结果为null。
-
getEditorSearchPath
获取将用于搜索属性编辑器的包名称。- 返回:
-
将按顺序搜索以查找属性编辑器的包名称数组。
此数组的默认值取决于实现,例如Sun的实现最初设置为{"sun.beans.editors"}。
-
setEditorSearchPath
更改将用于查找属性编辑器的包名称列表。首先,如果存在安全管理器,则将调用其
checkPropertiesAccess方法。这可能导致SecurityException。- 参数:
-
path- 包名称数组。 - 抛出:
-
SecurityException- 如果存在安全管理器且其checkPropertiesAccess方法不允许设置系统属性。 - 参见:
-