public interface PropertyEditor
PropertyEditor支持各种各样的显示和更新属性值的方式。 大多数PropertyEditor只需要支持该API中可用的不同选项的一个子集。
简单的PropertyEditor可能只支持getAsText和setAsText方法,并且不需要支持(例如)paintValue或getCustomEditor。 更复杂的类型可能无法支持getAsText和setAsText,而是支持paintValue和getCustomEditor。
每个propertyEditor必须支持三个简单的显示样式中的一个或多个。 因此,它可以(1)支持isPaintable或(2)都从getTags()返回一个非空的String [],并从getAsText返回一个非空值,或者(3)只需从getAsText()返回一个非空字符串, 。
每个属性编辑器必须支持对setValue的调用,当参数对象是对应的propertyEditor类型时。 另外,每个属性编辑器都必须支持自定义编辑器,或支持setAsText。
每个PropertyEditor应该有一个空构造函数。
Modifier and Type | Method and Description |
---|---|
void |
addPropertyChangeListener(PropertyChangeListener listener)
为值更改添加一个侦听器。
|
String |
getAsText()
获取属性值作为文本。
|
Component |
getCustomEditor()
PropertyEditor可以选择提供编辑其属性值的完整自定义组件。
|
String |
getJavaInitializationString()
返回可用于设置属性以匹配编辑器当前状态的Java代码片段。
|
String[] |
getTags()
如果属性值必须是一组已知标记值,则该方法应返回一个标记数组。
|
Object |
getValue()
获取属性值。
|
boolean |
isPaintable()
确定此属性编辑器是否可绘制。
|
void |
paintValue(Graphics gfx, Rectangle box)
将值的表示绘制到屏幕不动产的给定区域。
|
void |
removePropertyChangeListener(PropertyChangeListener listener)
删除值更改的侦听器。
|
void |
setAsText(String text)
通过解析给定的字符串来设置属性值。
|
void |
setValue(Object value)
设置(或更改)要编辑的对象。
|
boolean |
supportsCustomEditor()
确定此属性编辑器是否支持自定义编辑器。
|
void setValue(Object value)
value
- 要编辑的新目标对象。
请注意,该对象不应该由PropertyEditor修改,而是PropertyEditor应该创建一个新对象来保存任何修改的值。
Object getValue()
boolean isPaintable()
void paintValue(Graphics gfx, Rectangle box)
如果PropertyEditor不符合paint请求(请参阅isPaintable),此方法应该是一个无声的noop。
给定的Graphics对象将具有父容器的默认字体,颜色等。 PropertyEditor可能会更改图形属性,如字体和颜色,不需要恢复旧值。
gfx
- 绘制图形对象。
box
- 我们应该绘制的图形对象内的矩形。
String getJavaInitializationString()
代码片段应该是上下文的,并且必须是由JLS指定的合法的Java表达式。
具体来说,如果表达式表示一个计算,则所有类和静态成员都应该是完全限定的。 此规则适用于构造函数,静态方法和非原始参数。
评估表达式时应注意使用,因为它可能会抛出异常。 特别地,代码生成器必须确保生成的代码将在存在可以抛出检查异常的表达式的情况下进行编译。
示例结果是:
2
new java.awt.Color(127,127,34)
java.awt.Color.orange
javax.swing.Box.createRigidArea(new java.awt.Dimension(0, 5))
;
的分号(' ;
')。
String getAsText()
如果该值不能表示为可编辑字符串,则返回null。
如果返回非空值,则PropertyEditor应该准备好在setAsText()中解析该字符串。
void setAsText(String text) throws IllegalArgumentException
text
- 要解析的字符串。
IllegalArgumentException
String[] getTags()
Component getCustomEditor()
调用getCustomEditor的较高级别的代码可能会将Component嵌入到一些较大的属性表中,或者可以将其放在自己的单个对话框中,或者...
boolean supportsCustomEditor()
void addPropertyChangeListener(PropertyChangeListener listener)
PropertyChangeListener
上激活PropertyChangeEvent
,为属性名称指定null
值,并将其本身作为源。
listener
- 添加PropertyChangeListener
void removePropertyChangeListener(PropertyChangeListener listener)
listener
- 要删除的PropertyChangeListener