模块 java.desktop

接口 PropertyEditor

所有已知的实现类:
PropertyEditorSupport

public interface PropertyEditor
PropertyEditor 类为希望允许用户编辑给定类型的属性值的 GUI 提供支持。

PropertyEditor 支持多种不同类型的显示和更新属性值的方式。大多数 PropertyEditor 只需要支持此 API 中可用的不同选项的一个子集。

简单的 PropertyEditors 可能只支持 getAsText 和 setAsText 方法,不需要支持(比如)paintValue 或 getCustomEditor。更复杂的类型可能无法支持 getAsText 和 setAsText,但会支持 paintValue 和 getCustomEditor。

每个 propertyEditor 都必须支持三种简单显示样式中的一种或多种。因此它可以 (1) 支持 isPaintable 或 (2) 从 getTags() 返回一个非空 String[] 并从 getAsText 返回一个非空值或 (3) 简单地从 getAsText() 返回一个非空字符串.

当参数对象的类型是对应的 propertyEditor 时,每个属性编辑器都必须支持对 setValue 的调用。此外,每个属性编辑器必须支持自定义编辑器或支持 setAsText。

每个 PropertyEditor 都应该有一个 null 构造方法。

自从:
1.1
  • 方法详情

    • setValue

      void setValue(Object  value)
      设置(或更改)要编辑的对象。 “int”等原始类型必须包装为相应的对象类型,如“java.lang.Integer”。
      参数:
      value - 要编辑的新目标对象。请注意,该对象不应由 PropertyEditor 修改,而 PropertyEditor 应创建一个新对象来保存任何修改后的值。
    • getValue

      Object  getValue()
      获取属性值。
      返回:
      财产的值。 “int”等原始类型将被包装为相应的对象类型,如“java.lang.Integer”。
    • isPaintable

      boolean isPaintable()
      确定此属性编辑器是否可绘制。
      返回:
      如果该类将遵循 paintValue 方法,则为真。
    • paintValue

      void paintValue(Graphics  gfx, Rectangle  box)
      将值的表示绘制到屏幕空间的给定区域中。请注意,propertyEditor 负责进行自己的裁剪,以使其适合给定的矩形。

      如果 PropertyEditor 不接受绘画请求(请参阅 isPaintable),则此方法应该是静默的 noop。

      给定的 Graphics 对象将具有父容器的默认字体、颜色等。 PropertyEditor 可能会更改字体和颜色等图形属性,并且不需要恢复旧值。

      参数:
      gfx - 要绘制到的图形对象。
      box - 我们应该在其中绘制的图形对象内的矩形。
    • getJavaInitializationString

      String  getJavaInitializationString()
      返回可用于设置属性以匹配编辑器当前状态的 Java 代码片段。此方法旨在用于生成 Java 代码以反映通过属性编辑器所做的更改。

      代码片段应该是上下文无关的,并且必须是 JLS 指定的合法 Java 表达式。

      具体来说,如果表达式表示计算,则所有类和静态成员都应该是完全限定的。此规则适用于构造方法、静态方法和非原始参数。

      评估表达式时应小心,因为它可能会引发异常。特别是,代码生成器必须确保生成的代码能够在存在可抛出已检查异常的表达式的情况下进行编译。

      示例结果是:

      • 原始表达式:2
      • 类构造函数:new java.awt.Color(127,127,34)
      • 静态字段:java.awt.Color.orange
      • 静态方法:javax.swing.Box.createRigidArea(new java.awt.Dimension(0, 5))
      返回:
      表示当前值的初始值设定项的 Java 代码片段。它不应包含分号 ('; ') 来结束表达式。
    • getAsText

      String  getAsText()
      获取文本形式的属性值。
      返回:
      作为人类可编辑字符串的属性值。

      如果该值不能表示为可编辑的字符串,则返回 null。

      如果返回非空值,则 PropertyEditor 应准备好在 setAsText() 中解析该字符串。

    • setAsText

      void setAsText(String  text) throws IllegalArgumentException
      通过解析给定的字符串来设置属性值。如果 String 格式错误或此类属性不能表示为文本,则可能引发 java.lang.IllegalArgumentException。
      参数:
      text - 要解析的字符串。
      抛出:
      IllegalArgumentException
    • getTags

      String [] getTags()
      如果属性值必须是一组已知标记值中的一个,则此方法应返回一个标记数组。这可用于表示(例如)枚举值。如果 PropertyEditor 支持标签,那么它应该支持使用带有标签值的 setAsText 作为设置值的方式,并支持使用 getAsText 来识别当前值。
      返回:
      此属性的标记值。如果此属性不能表示为标记值,则可能为 null。
    • getCustomEditor

      Component  getCustomEditor()
      PropertyEditor 可以选择提供一个完整的自定义组件来编辑其属性值。 PropertyEditor 负责将自己连接到其编辑器组件本身,并通过触发 PropertyChange 事件来报告属性值更改。

      调用 getCustomEditor 的更高级别的代码可以将组件嵌入到一些更大的属性表中,或者它可以将它放在它自己的单独对话框中,或者......

      返回:
      允许人类直接编辑当前属性值的 java.awt.Component。如果不支持,则可能为 null。
    • supportsCustomEditor

      boolean supportsCustomEditor()
      确定此属性编辑器是否支持自定义编辑器。
      返回:
      如果 propertyEditor 可以提供自定义编辑器,则为真。
    • addPropertyChangeListener

      void addPropertyChangeListener(PropertyChangeListener  listener)
      添加值更改的监听器。当属性编辑器更改其值时,它应该在所有已注册的 PropertyChangeListener 上触发 PropertyChangeEvent ,指定属性名称的 null 值及其本身作为源。
      参数:
      listener - 要添加的 PropertyChangeListener
    • removePropertyChangeListener

      void removePropertyChangeListener(PropertyChangeListener  listener)
      删除值更改的监听。
      参数:
      listener - 要删除的 PropertyChangeListener