PropertyEditor 类提供对 GUI 的支持,该 GUI 允许用户编辑给定类型的特性值。
PropertyEditor 支持各种不同种类的显示和更新特性值的方式。大多数
PropertyEditors 仅需支持该 API 中的不同可用选项子集。
简单的 PropertyEditors 仅可支持 getAsText 和
setAsText 方法,例如它不必支持 paintValue 或 getCustomEditor。更复杂的类型不能支持
getAsText 和 setAsText,但要支持 paintValue 和 getCustomEditor。
每个 propertyEditor 必须支持三种简单显示风格中的一个或多个。因此,它能 (1) 支持
isPaintable, (2) 既能从 getTags() 返回一个非空 String[] 又能从 getAsText 返回一个非
空值,
(3) 简单地从 getAsText() 返回一个非空字符串。
当参数对象是 propertyEditor 的相应类型时,每个特性编辑器必须支持一个 setValue 的调用
。此外,每个特性编辑器必须或者支持一个自定义编辑器或者支持 setAsText。
每个 PropertyEditor 应有一个空构造子。
接口 java.beans.PropertyEditor
接口 java.beans.PropertyEditor
- public interface PropertyEditor
方法索引
- addPropertyChangeListener
(PropertyChangeListener)
- 为 PropertyChange 事件注册一个监听者。
- getAsText()
-
- getCustomEditor()
- PropertyEditor 可选择编辑其特性值的全部自定义 Component 生效。
href="#getJavaInitializationString()">getJavaInitializationString()
- 当生成 Java 代码来设置特性值时,期望使用该方法。
- getTags()
- 若特性值必须是已知标签值集中的一个时,则该方法应返回一个标签数组。
-
href="#getValue()">getValue()
-
- isPaintable()
-
- paintValue
(Graphics, Rectangle)
- 将值表示法描绘在屏幕有效空间的一个给定区域。
-
href="#removePropertyChangeListener
(java.beans.PropertyChangeListener)">removePropertyChangeListener
(PropertyChangeListener)
- 删除 PropertyChange 事件的一个监听者。
- setAsText(String)
- 通过分析给定 String 来设置特性值。
- setValue(Object)
- 设置 (或改变) 待编辑的对象。
- supportsCustomEditor()
-
方法
setValue
public abstract void setValue(Object
value)
- 设置 (或改变) 待编辑的对象。如“int”的内置类型必须打包为相应的对象类型如
“java.lang.Integer”。
- 参数:
- value - 待编辑的新目标对象。注意 PropertyEditor 不应改变该对象,
而应由 PropertyEditor 创建新对象来保留任何修改值。
getValue
public abstract Object getValue()
- 返回值:
- 特性值。如“int”的内置类型将打包为相应的对象类型如“java.lang.Integer”。
isPaintable
public abstract boolean isPaintable()
- 返回值:
- 若类支持 paintValue 方法,则为 true。
paintValue
public abstract void paintValue(
href="java.awt.graphics_dsc.htm#_top_">Graphics gfx,
href="java.awt.rectangle_dsc.htm#_top_">Rectangle box)
- 将值表示描绘在屏幕实际空间的一个给定区域。注意
propertyEditor 负责自身的剪切,以使其适应给定矩形。
若 PropertyEditor 不支持描绘请求 (参见 isPaintable),则该方法应为静态空操作指令。
给定 Graphics 对象将有父类容器的缺省字体、颜色等。PropertyEditor 可改变图形属性,如
字体、颜色和不需恢复的旧值。
- 参数:
- gfx - 待描绘的 Graphics 对象。
- box - 图形对象中应描绘的矩形。
getJavaInitializationString
public abstract String getJavaInitializationString()
- 当生成 Java 代码来设置特性值时,期望使用该方法。它应返回一个 Java 代码段,该
编码使用当前特性值初始化一个变量。
示例结果为“2”,“ new Color(127,127,34)”,
“Color.orange”等。
- 返回值:
- 表示当前值的一个初始表达式的 Java 代码段。
getAsText
public abstract String getAsText()
- 返回值:
- 以用户可编辑字符串表示的特性值。
若该值不能表示为可编辑的字符串,则返
回 null 。
若返回非空值,则应该准备 PropertyEditor,用它反向分析 setAsText() 里的字符串。
setAsText
public abstract void setAsText(String text) throws
href="java.lang.illegalargumentexception_dsc.htm#_top_">IllegalArgumentException
- 通过分析给定 String 来设置特性值。若两种 String 都为错误格式或该类特性不能表
示为正文,则可引起 java.lang.IllegalArgumentException 。
- 参数:
- text - 待分析的字符串。
getTags
public abstract String[] getTags()
- 若特性值必须是已知标签值集中的一个时,则该方法应返回一个标签数组。 例如能用
来表示 enum 值。若 PropertyEditor 支持标签,则应支持用一个标签值作为设置值和使用
getAsText 来识别当前值的方式来使用 setAsText。
- 返回值:
- 该特性的标签值。若该特性不能表示为一个加标签的值,则可为 null。
getCustomEditor
public abstract Component
getCustomEditor()
- PropertyEditor 可选择编辑其特性值的全部自定义 Component 生效。PropertyEditor
有责任将自身与其编辑器 Component 挂钩,并报告激发 PropertyChange 事件所改变的特性值
。
调用 getCustomEditor 的高级代码可将 Component 嵌入到一些较大的特性表中或将其放入自身
的个别对话框中。
- 返回值:
- 允许人们直接编辑当前特性值的 java.awt.Component 。若不支持,则可为 null 。
supportsCustomEditor
public abstract boolean supportsCustomEditor()
- 返回值:
- 若 propertyEditor 能提供自定义编辑器,则可为 true。
addPropertyChangeListener
public abstract void addPropertyChangeListener(
href="java.beans.propertychangelistener_dsc.htm#_top_">PropertyChangeListener
listener)
- 为 PropertyChange 事件注册一个监听者。当 PropertyEditor 改变其值时,应激发所
有注册的 PropertyChangeListener 上的一个
PropertyChange 事件,为特性名和其自身指定空值作为源值。
- 参数:
- listener - 当某个 PropertyChange 事件被激发时待调用的对象。
removePropertyChangeListener
public abstract void removePropertyChangeListener(
href="java.beans.propertychangelistener_dsc.htm#_top_">PropertyChangeListener
listener)
- 删除 PropertyChange 事件的一个监听者。
- 参数:
- listener - 待删除的 PropertyChange listener 。