|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
| 上一個類別 下一個類別 | 框架 無框架 | |||||||||
| 摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 | |||||||||
java.lang.Objectjavax.swing.JFormattedTextField.AbstractFormatter
javax.swing.text.DefaultFormatter
javax.swing.text.InternationalFormatter
public class InternationalFormatter
InternationalFormatter 擴展 DefaultFormatter,使用 java.text.Format 的實例處理往返於 String 的轉換。
如果 getAllowsInvalid() 為 false,這將要求 Format 在每次編輯時格式化當前文本。
可以通過 setMinimum 和 setMaximum 方法指定最小值和最大值。為使此值生效,必須比較 stringToValue 返回的值和通過 Comparable 介面得到的最小值/最大值。
配置 Format 和 InternationalFormatter 時一定要仔細,因為有可能造成某些值無法輸入的情形。假定日期格式 'M/d/yy'(一種由 setAllowsInvalid(false) 決定總是有效的 InternationalFormatter)處於改寫網要 (setOverwriteMode(true)) 且日期為 7/1/99。在此情況下,使用者將不能輸入兩位數月份或某月的兩位數日期。要避免此現象,該格式應該為 'MM/dd/yy'。
如果 InternationalFormatter 配置為只允許有效值 (setAllowsInvalid(false)),則每次有效編輯都會導致 JFormattedTextField 的文本根據 Format 全部重新設置。鼠標位置也將隨著對結果 String 的文字值字元的添加/刪除而調整。
InternationalFormatter 的 stringToValue 行為與 DefaultTextFormatter 稍有不同,它可以執行以下操作:
setFormat 指定的 Format 上調用 parseObject
setValueClass),則會調用父級類別實作,以便將 parseObject 返回的值轉換為適當的類別。
ParseException,並且該值不在最小值/最大值之間,則拋出 ParseException。
InternationalFormatter 以此方式實作 stringToValue,所以可以指定一個 Format 可能返回的替代 Class。
警告:此類別的已序列化物件與以後的 Swing 版本不相容。當前序列化支持適用於短期存儲或運行相同 Swing 版本的應用程序之間的 RMI。從 1.4 版本開始,已在 java.beans 套件中添加了支持所有 JavaBeansTM 長期存儲的功能。請參見 XMLEncoder。
Format,
Comparable| 建構子摘要 | |
|---|---|
InternationalFormatter()
創建一個不帶指定 Format 的 InternationalFormatter。 |
|
InternationalFormatter(Format format)
創建一個具有指定 Format 實例的 InternationalFormatter。 |
|
| 方法摘要 | |
|---|---|
Object |
clone()
創建該 DefaultFormatter 的一個副本。 |
protected Action[] |
getActions()
如果 getSupportsIncrement 返回 true,則這將返回兩個適合增加/減少該值的 Action。 |
Format.Field[] |
getFields(int offset)
返回與 offset 處的文本相關的 Format.Field 常數。 |
Format |
getFormat()
返回指示可以編輯和顯示的合法值的格式。 |
Comparable |
getMaximum()
返回最大允許值。 |
Comparable |
getMinimum()
返回最小允許值。 |
void |
install(JFormattedTextField ftf)
將 DefaultFormatter 安裝到特定的 JFormattedTextField 上。 |
void |
setFormat(Format format)
設置指示可以編輯和顯示的合法值的格式。 |
void |
setMaximum(Comparable max)
設置最大允許值。 |
void |
setMinimum(Comparable minimum)
設置最小允許值。 |
Object |
stringToValue(String text)
返回 String text 的 Object 表示形式。 |
String |
valueToString(Object value)
返回 Object value 的 String 表示形式。 |
| 從類別 javax.swing.text.DefaultFormatter 繼承的方法 |
|---|
getAllowsInvalid, getCommitsOnValidEdit, getDocumentFilter, getNavigationFilter, getOverwriteMode, getValueClass, setAllowsInvalid, setCommitsOnValidEdit, setOverwriteMode, setValueClass |
| 從類別 javax.swing.JFormattedTextField.AbstractFormatter 繼承的方法 |
|---|
getFormattedTextField, invalidEdit, setEditValid, uninstall |
| 從類別 java.lang.Object 繼承的方法 |
|---|
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| 建構子詳細資訊 |
|---|
public InternationalFormatter()
Format 的 InternationalFormatter。
public InternationalFormatter(Format format)
Format 實例的 InternationalFormatter。
format - 用於往返於 String 轉換的 Format 實例| 方法詳細資訊 |
|---|
public void setFormat(Format format)
format - 用於往返 String 轉換的 Format 實例public Format getFormat()
public void setMinimum(Comparable minimum)
valueClass,且 minimum 為非 null,則 valueClass 將被設置為 minimum 類別的值類別。
minimum - 可以輸入的最小合法值DefaultFormatter.setValueClass(java.lang.Class>)public Comparable getMinimum()
public void setMaximum(Comparable max)
valueClass,且 max 為非 null,則將 valueClass 設置為 max 類別的值。
max - 可以輸入的最大合法值DefaultFormatter.setValueClass(java.lang.Class>)public Comparable getMaximum()
public void install(JFormattedTextField ftf)
DefaultFormatter 安裝到特定的 JFormattedTextField 上。這將調用 valueToString,將 JFormattedTextField 中的當前值轉換為 String。此方法稍後將會將 getActions 返回的 Action、getDocumentFilter 返回的 DocumentFilter 和 getNavigationFilter 返回的 NavigationFilter 安裝到 JFormattedTextField 上。
如果子類別希望在 JFormattedTextField 上安裝其他偵聽器,則通常只需要覆寫此方法。
如果在將當前值轉換為 String 時存在 ParseException,則這會將文本設置為空 String,並將 JFormattedTextField 標記為正處在無效狀態。
儘管這是一個公共方法,但通常僅供 JFormattedTextField 的子類別使用。當值發生更改,或內部狀態發生更改時,JFormattedTextField 將在適當的時候調用此方法。
DefaultFormatter 中的 installftf - 要格式化的 JFormattedTextField,可能為 null,指示未從當前的 JFormattedTextField 安裝。
public String valueToString(Object value)
throws ParseException
value 的 String 表示形式。此方法會在當前 Format 上調用 format。
DefaultFormatter 中的 valueToStringvalue - 要轉換的值
ParseException - 如果在轉換時發生錯誤
public Object stringToValue(String text)
throws ParseException
String text 的 Object 表示形式。
DefaultFormatter 中的 stringToValuetext - 要轉換的 String
Object 表示形式
ParseException - 如果轉換時發生錯誤public Format.Field[] getFields(int offset)
offset 處的文本相關的 Format.Field 常數。如果 offset 不是當前文本中的有效位置,這將返回一個空陣列。
offset - 要檢查文本的偏移量
public Object clone()
throws CloneNotSupportedException
DefaultFormatter 中的 cloneCloneNotSupportedException - 如果物件的類別不支持 Cloneable 介面,則覆寫 clone 方法的子類別也會拋出此異常,以指示無法複製某個實例。Cloneableprotected Action[] getActions()
getSupportsIncrement 返回 true,則這將返回兩個適合增加/減少該值的 Action。
JFormattedTextField.AbstractFormatter 中的 getActions
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
| 上一個類別 下一個類別 | 框架 無框架 | |||||||||
| 摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 | |||||||||
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。