JavaTM 2 Platform
Standard Ed. 6

javax.swing.text
類別 DefaultFormatter

java.lang.Object
  繼承者 javax.swing.JFormattedTextField.AbstractFormatter
      繼承者 javax.swing.text.DefaultFormatter
所有已實作的介面:
Serializable, Cloneable
直接已知子類別:
InternationalFormatter, MaskFormatter

public class DefaultFormatter
extends JFormattedTextField.AbstractFormatter
implements Cloneable, Serializable

DefaultFormatter 格式化任意物件。格式化是通過調用 toString 方法完成的。為將值轉換回 String,類別必須提供一個採用 String 參數的建構子。如果未發現採用 String 的單一參數建構子,則返回值將為傳入 stringToValue 的 String。

DefaultFormatter 的實例不能在 JFormattedTextField 的多個實例中使用。要獲得已配置好的 DefaultFormatter 的副本,請使用 clone 方法。

警告:此類別的已序列化物件與以後的 Swing 版本不相容。當前序列化支持適用於短期存儲或運行相同 Swing 版本的應用程序之間的 RMI。從 1.4 版本開始,已在 java.beans 套件中添加了支持所有 JavaBeansTM 長期存儲的功能。請參見 XMLEncoder

從以下版本開始:
1.4
另請參見:
JFormattedTextField.AbstractFormatter

建構子摘要
DefaultFormatter()
          創建 DefaultFormatter。
 
方法摘要
 Object clone()
          創建此 DefaultFormatter 的副本。
 boolean getAllowsInvalid()
          返回編輯的值是否在一段時間內允許為無效。
 boolean getCommitsOnValidEdit()
          返回何時將編輯內容發佈回 JFormattedTextField
protected  DocumentFilter getDocumentFilter()
          返回用於限制放置到 JFormattedTextField 中的字元的 DocumentFilter
protected  NavigationFilter getNavigationFilter()
          返回用於限制鼠標放置位置的 NavigationFilter
 boolean getOverwriteMode()
          返回插入字元時的行為。
 Class<?> getValueClass()
          返回用於創建新 Objects 的類別。
 void install(JFormattedTextField ftf)
          將 DefaultFormatter 安裝到特定的 JFormattedTextField
 void setAllowsInvalid(boolean allowsInvalid)
          設置編輯的值在一段時間內是否允許為無效(也就是說,stringToValue 是否拋出 ParseException)。
 void setCommitsOnValidEdit(boolean commit)
          設置何時將編輯內容發佈回 JFormattedTextField
 void setOverwriteMode(boolean overwriteMode)
          配置插入字元時的行為。
 void setValueClass(Class<?> valueClass)
          設置用於創建新 Objects 的類別。
 Object stringToValue(String string)
          通過使用帶 String 參數的建構子將傳入的 String 轉換為 getValueClass 的一個實例。
 String valueToString(Object value)
          使用 toString 方法將傳入的 Object 轉換為 String。
 
從類別 javax.swing.JFormattedTextField.AbstractFormatter 繼承的方法
getActions, getFormattedTextField, invalidEdit, setEditValid, uninstall
 
從類別 java.lang.Object 繼承的方法
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

建構子詳細資訊

DefaultFormatter

public DefaultFormatter()
創建 DefaultFormatter。

方法詳細資訊

install

public void install(JFormattedTextField ftf)
DefaultFormatter 安裝到特定的 JFormattedTextField。這會調用 valueToString,以便將 JFormattedTextField 的當前值轉換為 String。此方法稍後將會把 getActions 返回的 ActiongetDocumentFilter 返回的 DocumentFiltergetNavigationFilter 返回的 NavigationFilter 安裝到 JFormattedTextField 上。

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

如果在將當前值轉換為 String 時存在 ParseException,則這會將文本設置為空 String,並將 JFormattedTextField 標記為正處在無效狀態。

儘管這是一個公共方法,但通常僅供 JFormattedTextField 的子類別使用。當值發生更改,或內部狀態發生更改時,JFormattedTextField 將在適當的時候調用此方法。

覆寫:
類別 JFormattedTextField.AbstractFormatter 中的 install
參數:
ftf - 要格式化為的 JFormattedTextField,可以為 null,指示未從當前的 JFormattedTextField 安裝。

setCommitsOnValidEdit

public void setCommitsOnValidEdit(boolean commit)
設置何時將編輯內容發佈回 JFormattedTextField。如果為 true,commitEdit 在每次有效編輯(編輯文本的任何時間)後調用。另一方面,如果為 false,則 DefaultFormatter 不會將編輯內容發佈回 JFormattedTextField。因此,JFormattedTextField 值的惟一一次改變發生的時間是,在 JFormattedTextField 上調用 commitEdit 時,通常為按下回車(Enter)或當焦點離開 JFormattedTextField 時。

參數:
commit - 用於指示何時將編輯內容提交回 JTextComponent

getCommitsOnValidEdit

public boolean getCommitsOnValidEdit()
返回何時將編輯內容發佈回 JFormattedTextField

返回:
如果在每次有效編輯後提交編輯,則返回 true

setOverwriteMode

public void setOverwriteMode(boolean overwriteMode)
配置插入字元時的行為。如果 overwriteMode 為 true (預設值),新字元將改寫模型中現有的字元。

參數:
overwriteMode - 指示使用改寫或替代網要

getOverwriteMode

public boolean getOverwriteMode()
返回插入字元時的行為。

返回:
如果新插入字元改寫現有字元,則返回 true

setAllowsInvalid

public void setAllowsInvalid(boolean allowsInvalid)
設置編輯的值在一段時間內是否允許為無效(也就是說,stringToValue 是否拋出 ParseException)。允許使用者臨時輸入一個無效值會很方便。

參數:
allowsInvalid - 用於指示編輯的值是否必須始終為有效

getAllowsInvalid

public boolean getAllowsInvalid()
返回編輯的值是否在一段時間內允許為無效。

返回:
如果編輯的值必須始終為有效,則返回 false

setValueClass

public void setValueClass(Class<?> valueClass)
設置用於創建新 Objects 的類別。如果傳入的類別不具有採用 String 的只帶一個參數的建構子,將使用 String 值。

參數:
valueClass - 用於建構從 stringToValue 中返回的值的類別

getValueClass

public Class<?> getValueClass()
返回用於創建新 Objects 的類別。

返回:
用於建構從 stringToValue 中返回的值的類別

stringToValue

public Object stringToValue(String string)
                     throws ParseException
通過使用帶 String 參數的建構子將傳入的 String 轉換為 getValueClass 的一個實例。如果 getValueClass 返回 null,將使用 JFormattedTextField 中當前值的類別。如果它為 null,將返回一個 String。如果建構子拋出異常,則會拋出 ParseException。如果沒有只帶一個參數的 String 建構子,則返回 string

指定者:
類別 JFormattedTextField.AbstractFormatter 中的 stringToValue
參數:
string - 要轉換的字元串
返回:
文本的 Object 表示形式
拋出:
ParseException - 如果轉換過程中出現錯誤

valueToString

public String valueToString(Object value)
                     throws ParseException
使用 toString 方法將傳入的 Object 轉換為 String。

指定者:
類別 JFormattedTextField.AbstractFormatter 中的 valueToString
參數:
value - 要轉換的值
返回:
值的 String 表示形式
拋出:
ParseException - 如果在轉換時發生錯誤

getDocumentFilter

protected DocumentFilter getDocumentFilter()
返回用於限制放置到 JFormattedTextField 中的字元的 DocumentFilter

覆寫:
類別 JFormattedTextField.AbstractFormatter 中的 getDocumentFilter
返回:
限制編輯的 DocumentFilter

getNavigationFilter

protected NavigationFilter getNavigationFilter()
返回用於限制鼠標放置位置的 NavigationFilter

覆寫:
類別 JFormattedTextField.AbstractFormatter 中的 getNavigationFilter
返回:
限制導航的 NavigationFilter

clone

public Object clone()
             throws CloneNotSupportedException
創建此 DefaultFormatter 的副本。

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

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

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