Module  java.desktop
软件包  java.beans

Class 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

        public PropertyEditorManager​()
    • 方法详细信息

      • 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()