模块  java.desktop
软件包  java.beans

Class PropertyEditorManager


  • public class PropertyEditorManagerextends 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​(<?> 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()