- java.lang.Object
-
- java.beans.PropertyEditorManager
-
public class PropertyEditorManager extends Object
PropertyEditorManager可用于查找任何给定类型名称的属性编辑器。 此属性编辑器必须支持java.beans.PropertyEditor接口才能编辑给定对象。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。
- 从以下版本开始:
- 1.1
-
-
构造方法摘要
构造方法 构造器 描述 PropertyEditorManager()
-
方法摘要
所有方法 静态方法 具体的方法 变量和类型 方法 描述 static PropertyEditor
findEditor(类<?> targetType)
找到给定目标类型的值编辑器。static String[]
getEditorSearchPath()
获取将搜索属性编辑器的包名称。static void
registerEditor(类<?> targetType, 类<?> editorClass)
注册编辑器类以编辑给定目标类的值。static void
setEditorSearchPath(String[] path)
更改将用于查找属性编辑器的包名称列表。
-
-
-
方法详细信息
-
registerEditor
public static void registerEditor(类<?> targetType, 类<?> editorClass)
注册编辑器类以编辑给定目标类的值。 如果编辑器类为null
,则将删除任何现有定义。 因此,该方法可用于取消注册。 如果卸载目标或编辑器类,则会自动取消注册。如果有安全管理器,则调用其
checkPropertiesAccess
方法。 这可能会导致SecurityException 。- 参数
-
targetType
- 要编辑的类型的类对象 -
editorClass
- 编辑器类的类对象 - 异常
-
SecurityException
- 如果存在安全管理器且其checkPropertiesAccess
方法不允许设置系统属性 - 另请参见:
-
SecurityManager.checkPropertiesAccess()
-
findEditor
public static PropertyEditor findEditor(类<?> targetType)
找到给定目标类型的值编辑器。- 参数
-
targetType
- 要编辑的类型的Class对象 - 结果
- 给定目标类的编辑器对象。 如果找不到合适的编辑器,则结果为null。
-
getEditorSearchPath
public static String[] getEditorSearchPath()
获取将搜索属性编辑器的包名称。- 结果
-
将搜索的包名称数组,以便查找属性编辑器。
此数组的默认值取决于实现,例如Sun实现最初设置为{“sun.beans.editors”}。
-
setEditorSearchPath
public static void setEditorSearchPath(String[] path)
更改将用于查找属性编辑器的包名称列表。首先,如果有安全管理器,则调用其
checkPropertiesAccess
方法。 这可能会导致SecurityException。- 参数
-
path
- 包名称数组。 - 异常
-
SecurityException
- 如果存在安全管理器且其checkPropertiesAccess
方法不允许设置系统属性。 - 另请参见:
-
SecurityManager.checkPropertiesAccess()
-
-