JavaTM 2 Platform
Standard Ed. 6

javax.swing
類別 JFormattedTextField.AbstractFormatter

java.lang.Object
  繼承者 javax.swing.JFormattedTextField.AbstractFormatter
所有已實作的介面:
Serializable
直接已知子類別:
DefaultFormatter
正在封閉類別:
JFormattedTextField

public abstract static class JFormattedTextField.AbstractFormatter
extends Object
implements Serializable

JFormattedTextField 所使用的 AbstractFormatter 實例,用於處理從 Object 到 String 和從 String 到 Object 的轉換。AbstractFormatter 還可強制執行編輯策略,或者指導策略的執行,或者以任何適合於強制執行所需策略的方式操作 JFormattedTextField

AbstractFormatter 一次只能在一個 JFormattedTextField 中處於啟動狀態。JFormattedTextField 準備好使用 install 時即調用它,完成後調用 uninstall。希望安裝其他狀態的子類別應該覆寫 install 並適當地通知父級類別。

子類別必須覆寫轉換方法 stringToValuevalueToString。或者,子類別可以覆寫 getActionsgetNavigationFiltergetDocumentFilter,以便以特定的方式限制 JFormattedTextField

允許 JFormattedTextField 處於臨時無效狀態的子類別應該在恰當的時間調用 setEditValid

從以下版本開始:
1.4

建構子摘要
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)
          調用此方法以更新 JFormattedTextFieldeditValid 屬性。
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
 

建構子詳細資訊

JFormattedTextField.AbstractFormatter

public JFormattedTextField.AbstractFormatter()
方法詳細資訊

install

public void install(JFormattedTextField ftf)
AbstractFormatter 安裝到特定的 JFormattedTextField。這會調用 valueToStringJFormattedTextField 的當前值轉換為 String。然後將從 getActions 返回的 Action、從 getDocumentFilter 返回的 DocumentFilter 和從 getNavigationFilter 返回的 NavigationFilter 安裝到 JFormattedTextField

如果子類別希望在該 JFormattedTextField 上安裝其他偵聽器,通常只需覆寫此方法即可。

如果將當前值轉換為 String 的過程中出現 ParseException,則會將文本設置為空 String,並標記 JFormattedTextField 為處於無效狀態。

不過這是一個公共方法,通常它只對 JFormattedTextField 的子類別有用。當值更改,或者 JFormattedTextField 的內部狀態更改時,JFormattedTextField 才在適當的時間調用此方法。如果要創建 JFormattedTextField 的子類別並且在不同於 JFormattedTextField 操作的時間安裝/卸載 AbstractFormatter,則只需自己調用此方法。

參數:
ftf - 用於格式化的 JFormattedTextField,可以為 null,指示從當前 JFormattedTextField 進行卸載。

uninstall

public void uninstall()
卸載 AbstractFormatter 可能已在 JFormattedTextField 上安裝的所有狀態。這會重置在 JFormattedTextField 上安裝的 DocumentFilterNavigationFilter 和其他 Action


stringToValue

public abstract Object stringToValue(String text)
                              throws ParseException
分析 text,返回任意 Object。某些 formatter 可能返回 null。

參數:
text - 要轉換的 String
返回:
文本的 Object 表示形式
拋出:
ParseException - 如果轉換過程中出現錯誤

valueToString

public abstract String valueToString(Object value)
                              throws ParseException
返回為 value 顯示的 string 值。

參數:
value - 要轉換的 Value
返回:
值的 String 表示形式
拋出:
ParseException - 如果轉換過程中出現錯誤

getFormattedTextField

protected JFormattedTextField getFormattedTextField()
返回 AbstractFormatter 所安裝到的當前 JFormattedTextField

返回:
用於格式化的 JFormattedTextField。

invalidEdit

protected void invalidEdit()
使用者鍵入無效字元時調用此方法。這會將調用轉發到當前的 JFormattedTextField。


setEditValid

protected void setEditValid(boolean valid)
調用此方法以更新 JFormattedTextFieldeditValid 屬性。如果強制實施某個策略而使 JFormattedTextField 始終處於有效狀態,則不再需要調用此方法。

參數:
valid - JFormattedTextField 的有效狀態

getActions

protected Action[] getActions()
如果想提供自定義的 Action 集合,則應進行子類別化和覆寫。install 將在 JFormattedTextFieldActionMap 上安裝這些 Action。

返回:
要在 JFormattedTextField 上安裝的 Action 陣列

getDocumentFilter

protected DocumentFilter getDocumentFilter()
如果想要提供某個 DocumentFilter 以限制輸入內容,則應進行子類別化和覆寫。install 會將返回值安裝到 JFormattedTextField 上。

返回:
限制編輯的 DocumentFilter

getNavigationFilter

protected NavigationFilter getNavigationFilter()
如果想要提供過濾器以限制使用者可導航的位置,則應進行子類別化和覆寫。install 會將返回值安裝到 JFormattedTextField 上。

返回:
限制導航的 NavigationFilter

clone

protected Object clone()
                throws CloneNotSupportedException
複製 AbstractFormatter。返回的實例與 JFormattedTextField 無關聯。

覆寫:
類別 Object 中的 clone
返回:
AbstractFormatter 的副本
拋出:
CloneNotSupportedException - 如果物件的類別不支持 Cloneable 介面,則覆寫 clone 方法的子類別也會拋出此異常,以指示無法複製某個實例。
另請參見:
Cloneable

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only