public class PropertyEditorManager extends Object
PropertyEditorManager使用三种技术来定位给定类型的编辑器。 首先,它提供了一个registerEditor方法,允许编辑器被特定地注册给定类型。 第二,它尝试通过将“Editor”添加到给定类型的全限定类名(例如“foo.bah.FozEditor”)中来找到合适的类。 最后,使用简单的类名(没有包名称)向其添加“编辑器”,并查找匹配类的包的搜索路径。
所以对于一个输入类foo.bah.Fred,PropertyEditorManager将首先查看它的表,看看是否已经为foo.bah.Fred注册了一个编辑器,如果使用的话。 那么它会寻找一个foo.bah.FredEditor类。 然后它会寻找(说)standardEditorsPackage.FredEditor类。
将为Java原语类型“boolean”,“byte”,“short”,“int”,“long”,“float”和“double”提供默认PropertyEditors; 对于类java.lang.String。 java.awt.Color和java.awt.Font。
Constructor and Description |
---|
PropertyEditorManager() |
Modifier and Type | Method and Description |
---|---|
static PropertyEditor |
findEditor(类<?> targetType)
找到给定目标类型的值编辑器。
|
static String[] |
getEditorSearchPath()
获取将搜索属性编辑器的包名称。
|
static void |
registerEditor(类<?> targetType, 类<?> editorClass)
注册编辑器类来编辑给定目标类的值。
|
static void |
setEditorSearchPath(String[] path)
更改将用于查找属性编辑器的包名称列表。
|
public static void registerEditor(类<?> targetType, 类<?> editorClass)
null
,那么任何现有的定义将被删除。
因此,该方法可以用于取消注册。
如果目标或编辑器类被卸载,注册将被自动取消。
如果有安全管理器,则调用其checkPropertiesAccess
方法。 这可能会导致SecurityException 。
targetType
- 要编辑的类型的类对象
editorClass
- 编辑器类的类对象
SecurityException
- 如果存在安全管理员,并且其
checkPropertiesAccess
方法不允许设置系统属性
SecurityManager.checkPropertiesAccess()
public static PropertyEditor findEditor(类<?> targetType)
targetType
- 要编辑的类型的Class对象
public static String[] getEditorSearchPath()
该数组的默认值依赖于实现,例如,Sun实现最初设置为{“sun.beans.editors”}。
public static void setEditorSearchPath(String[] path)
首先,如果有安全管理器,则调用其checkPropertiesAccess
方法。 这可能会导致SecurityException。
path
- 包名称数组。
SecurityException
- 如果存在安全管理员,并且其
checkPropertiesAccess
方法不允许设置系统属性。
SecurityManager.checkPropertiesAccess()