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
-
Method Summary
Modifier and TypeMethodDescriptionstatic PropertyEditor
findEditor
(Class<?> targetType) 为给定目标类型查找一个值编辑器。static String[]
获取将用于搜索属性编辑器的包名称。static void
registerEditor
(Class<?> targetType, Class<?> editorClass) 注册一个编辑器类以编辑给定目标类的值。static void
setEditorSearchPath
(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
方法不允许设置系统属性。 - 参见:
-