|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object javax.swing.JFormattedTextField.AbstractFormatter
public abstract static class JFormattedTextField.AbstractFormatter
JFormattedTextField
所使用的 AbstractFormatter
實例,用於處理從 Object 到 String 和從 String 到 Object 的轉換。AbstractFormatter
還可強制執行編輯策略,或者指導策略的執行,或者以任何適合於強制執行所需策略的方式操作 JFormattedTextField
。
AbstractFormatter
一次只能在一個 JFormattedTextField
中處於啟動狀態。JFormattedTextField
準備好使用 install
時即調用它,完成後調用 uninstall
。希望安裝其他狀態的子類別應該覆寫 install
並適當地通知父級類別。
子類別必須覆寫轉換方法 stringToValue
和 valueToString
。或者,子類別可以覆寫 getActions
、getNavigationFilter
和 getDocumentFilter
,以便以特定的方式限制 JFormattedTextField
。
允許 JFormattedTextField
處於臨時無效狀態的子類別應該在恰當的時間調用 setEditValid
。
建構子摘要 | |
---|---|
JFormattedTextField.AbstractFormatter()
|
方法摘要 | |
---|---|
protected Object |
clone()
複製 AbstractFormatter 。 |
protected Action[] |
getActions()
如果想提供自定義的 Action 集合,則應進行子類別化和覆寫。 |
protected DocumentFilter |
getDocumentFilter()
如果想要提供某個 DocumentFilter 以限制輸入內容,則應進行子類別化和覆寫。 |
protected JFormattedTextField |
getFormattedTextField()
返回 AbstractFormatter 所安裝到的當前 JFormattedTextField 。 |
protected NavigationFilter |
getNavigationFilter()
如果想要提供過濾器以限制使用者可導航的位置,則應進行子類別化和覆寫。 |
void |
install(JFormattedTextField ftf)
將 AbstractFormatter 安裝到特定的 JFormattedTextField 。 |
protected void |
invalidEdit()
使用者鍵入無效字元時調用此方法。 |
protected void |
setEditValid(boolean valid)
調用此方法以更新 JFormattedTextField 的 editValid 屬性。 |
abstract Object |
stringToValue(String text)
分析 text ,返回任意 Object。 |
void |
uninstall()
卸載 AbstractFormatter 可能已在 JFormattedTextField 上安裝的所有狀態。 |
abstract String |
valueToString(Object value)
返回為 value 顯示的 string 值。 |
從類別 java.lang.Object 繼承的方法 |
---|
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
建構子詳細資訊 |
---|
public JFormattedTextField.AbstractFormatter()
方法詳細資訊 |
---|
public void install(JFormattedTextField ftf)
AbstractFormatter
安裝到特定的 JFormattedTextField
。這會調用 valueToString
將 JFormattedTextField
的當前值轉換為 String。然後將從 getActions
返回的 Action
、從 getDocumentFilter
返回的 DocumentFilter
和從 getNavigationFilter
返回的 NavigationFilter
安裝到 JFormattedTextField
。
如果子類別希望在該 JFormattedTextField
上安裝其他偵聽器,通常只需覆寫此方法即可。
如果將當前值轉換為 String 的過程中出現 ParseException
,則會將文本設置為空 String,並標記 JFormattedTextField
為處於無效狀態。
不過這是一個公共方法,通常它只對 JFormattedTextField
的子類別有用。當值更改,或者 JFormattedTextField
的內部狀態更改時,JFormattedTextField 才在適當的時間調用此方法。如果要創建 JFormattedTextField
的子類別並且在不同於 JFormattedTextField
操作的時間安裝/卸載 AbstractFormatter
,則只需自己調用此方法。
ftf
- 用於格式化的 JFormattedTextField,可以為 null,指示從當前 JFormattedTextField 進行卸載。public void uninstall()
AbstractFormatter
可能已在 JFormattedTextField
上安裝的所有狀態。這會重置在 JFormattedTextField
上安裝的 DocumentFilter
、NavigationFilter
和其他 Action
。
public abstract Object stringToValue(String text) throws ParseException
text
,返回任意 Object。某些 formatter 可能返回 null。
text
- 要轉換的 String
ParseException
- 如果轉換過程中出現錯誤public abstract String valueToString(Object value) throws ParseException
value
顯示的 string 值。
value
- 要轉換的 Value
ParseException
- 如果轉換過程中出現錯誤protected JFormattedTextField getFormattedTextField()
AbstractFormatter
所安裝到的當前 JFormattedTextField
。
protected void invalidEdit()
protected void setEditValid(boolean valid)
JFormattedTextField
的 editValid
屬性。如果強制實施某個策略而使 JFormattedTextField
始終處於有效狀態,則不再需要調用此方法。
valid
- JFormattedTextField 的有效狀態protected Action[] getActions()
Action
集合,則應進行子類別化和覆寫。install
將在 JFormattedTextField
的 ActionMap
上安裝這些 Action。
protected DocumentFilter getDocumentFilter()
DocumentFilter
以限制輸入內容,則應進行子類別化和覆寫。install
會將返回值安裝到 JFormattedTextField
上。
protected NavigationFilter getNavigationFilter()
install
會將返回值安裝到 JFormattedTextField
上。
protected Object clone() throws CloneNotSupportedException
AbstractFormatter
。返回的實例與 JFormattedTextField
無關聯。
Object
中的 clone
CloneNotSupportedException
- 如果物件的類別不支持 Cloneable
介面,則覆寫 clone
方法的子類別也會拋出此異常,以指示無法複製某個實例。Cloneable
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。