Module java.desktop
Package java.beans

Class PropertyEditorManager

java.lang.Object
java.beans.PropertyEditorManager

public class PropertyEditorManager extends Object
PropertyEditorManager可以用于查找任何给定类型名称的属性编辑器。此属性编辑器必须支持java.beans.PropertyEditor接口,用于编辑给定对象。

PropertyEditorManager使用三种技术来查找给定类型的编辑器。首先,它提供了registerEditor方法,允许为给定类型专门注册编辑器。其次,它尝试通过在给定类型的完全限定类名后添加“Editor”(例如“foo.bah.FozEditor”)来定位一个合适的类。最后,它获取简单类名(不包括包名),在包路径中添加“Editor”并查找匹配的类。

因此,对于输入类foo.bah.Fred,PropertyEditorManager首先会查看其表格,看看是否已为foo.bah.Fred注册了编辑器,如果有,则使用该编辑器。然后它会查找foo.bah.FredEditor类。然后它会查找(例如)standardEditorsPackage.FredEditor类。

默认的PropertyEditors将为Java原始类型“boolean”、“byte”、“short”、“int”、“long”、“float”和“double”提供支持;以及java.lang.String、java.awt.Color和java.awt.Font类。

自版本:
1.1
  • Constructor Details

    • PropertyEditorManager

      public PropertyEditorManager()
      构造一个PropertyEditorManager
  • Method Details

    • registerEditor

      public static void registerEditor(Class<?> targetType, Class<?> editorClass)
      注册一个编辑器类以编辑给定目标类的值。如果编辑器类为null,则将删除任何现有定义。因此,此方法可用于取消注册。如果目标或编辑器类被卸载,注册将被自动取消。

      如果存在安全管理器,则将调用其checkPropertiesAccess方法。这可能导致SecurityException

      参数:
      targetType - 要编辑的类型的类对象
      editorClass - 编辑器类的类对象
      抛出:
      SecurityException - 如果存在安全管理器且其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方法不允许设置系统属性。
      参见: