- 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
-
-
构造方法摘要
构造方法 Constructor 描述 PropertyEditorManager()
-
方法摘要
所有方法 静态方法 具体的方法 Modifier and Type 方法 描述 static PropertyEditor
findEditor(Class<?> targetType)
找到给定目标类型的值编辑器。static String[]
getEditorSearchPath()
获取将搜索属性编辑器的包名称。static void
registerEditor(Class<?> targetType, Class<?> editorClass)
注册编辑器类来编辑给定目标类的值。static void
setEditorSearchPath(String[] path)
更改将用于查找属性编辑器的包名称列表。
-
-
-
方法详细信息
-
registerEditor
public static void registerEditor(Class<?> targetType, Class<?> editorClass)
注册编辑器类来编辑给定目标类的值。 如果编辑器类是null
,那么任何现有的定义将被删除。 因此,该方法可以用于取消注册。 如果目标或编辑器类被卸载,注册将被自动取消。如果有安全管理器,则调用其
checkPropertiesAccess
方法。 这可能会导致一个SecurityException 。- 参数
-
targetType
- 要编辑的类型的类对象 -
editorClass
- 编辑器类的类对象 - 异常
-
SecurityException
- 如果存在安全管理员,并且其checkPropertiesAccess
方法不允许设置系统属性 - 另请参见:
-
SecurityManager.checkPropertiesAccess()
-
findEditor
public static PropertyEditor findEditor(Class<?> 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()
-
-