PropertyEditor 類提供對 GUI 的支持,該 GUI 允許用戶編輯給定類型的特性值。
PropertyEditor 支持各種不同種類的顯示和更新特性值的方式。大多數(shù)
PropertyEditors 僅需支持該 API 中的不同可用選項子集。
簡單的 PropertyEditors 僅可支持 getAsText 和
setAsText 方法,例如它不必支持 paintValue 或 getCustomEditor。更復雜的類型不能支持
getAsText 和 setAsText,但要支持 paintValue 和 getCustomEditor。
每個 propertyEditor 必須支持三種簡單顯示風格中的一個或多個。因此,它能 (1) 支持
isPaintable, (2) 既能從 getTags() 返回一個非空 String[] 又能從 getAsText 返回一個非
空值,
(3) 簡單地從 getAsText() 返回一個非空字符串。
當參數(shù)對象是 propertyEditor 的相應類型時,每個特性編輯器必須支持一個 setValue 的調用
。此外,每個特性編輯器必須或者支持一個自定義編輯器或者支持 setAsText。
每個 PropertyEditor 應有一個空構造子。
接口 java.beans.PropertyEditor
接口 java.beans.PropertyEditor
- public interface PropertyEditor
方法索引
- addPropertyChangeListener
(PropertyChangeListener)
- 為 PropertyChange 事件注冊一個監(jiān)聽者。
- getAsText()
-
- getCustomEditor()
- PropertyEditor 可選擇編輯其特性值的全部自定義 Component 生效。
href="#getJavaInitializationString()">getJavaInitializationString()
- 當生成 Java 代碼來設置特性值時,期望使用該方法。
- getTags()
- 若特性值必須是已知標簽值集中的一個時,則該方法應返回一個標簽數(shù)組。
-
href="#getValue()">getValue()
-
- isPaintable()
-
- paintValue
(Graphics, Rectangle)
- 將值表示法描繪在屏幕有效空間的一個給定區(qū)域。
-
href="#removePropertyChangeListener
(java.beans.PropertyChangeListener)">removePropertyChangeListener
(PropertyChangeListener)
- 刪除 PropertyChange 事件的一個監(jiān)聽者。
- setAsText(String)
- 通過分析給定 String 來設置特性值。
- setValue(Object)
- 設置 (或改變) 待編輯的對象。
- supportsCustomEditor()
-
方法
setValue
public abstract void setValue(Object
value)
- 設置 (或改變) 待編輯的對象。如“int”的內置類型必須打包為相應的對象類型如
“java.lang.Integer”。
- 參數(shù):
- value - 待編輯的新目標對象。注意 PropertyEditor 不應改變該對象,
而應由 PropertyEditor 創(chuàng)建新對象來保留任何修改值。
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)
- 將值表示描繪在屏幕實際空間的一個給定區(qū)域。注意
propertyEditor 負責自身的剪切,以使其適應給定矩形。
若 PropertyEditor 不支持描繪請求 (參見 isPaintable),則該方法應為靜態(tài)空操作指令。
給定 Graphics 對象將有父類容器的缺省字體、顏色等。PropertyEditor 可改變圖形屬性,如
字體、顏色和不需恢復的舊值。
- 參數(shù):
- 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 。
- 參數(shù):
- text - 待分析的字符串。
getTags
public abstract String[] getTags()
- 若特性值必須是已知標簽值集中的一個時,則該方法應返回一個標簽數(shù)組。 例如能用
來表示 enum 值。若 PropertyEditor 支持標簽,則應支持用一個標簽值作為設置值和使用
getAsText 來識別當前值的方式來使用 setAsText。
- 返回值:
- 該特性的標簽值。若該特性不能表示為一個加標簽的值,則可為 null。
getCustomEditor
public abstract Component
getCustomEditor()
- PropertyEditor 可選擇編輯其特性值的全部自定義 Component 生效。PropertyEditor
有責任將自身與其編輯器 Component 掛鉤,并報告激發(fā) 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 事件注冊一個監(jiān)聽者。當 PropertyEditor 改變其值時,應激發(fā)所
有注冊的 PropertyChangeListener 上的一個
PropertyChange 事件,為特性名和其自身指定空值作為源值。
- 參數(shù):
- listener - 當某個 PropertyChange 事件被激發(fā)時待調用的對象。
removePropertyChangeListener
public abstract void removePropertyChangeListener(
href="java.beans.propertychangelistener_dsc.htm#_top_">PropertyChangeListener
listener)
- 刪除 PropertyChange 事件的一個監(jiān)聽者。
- 參數(shù):
- listener - 待刪除的 PropertyChange listener 。