|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object javax.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
中的 install
ftf
- 要格式化的 JFormattedTextField,可能為 null,指示未從當前的 JFormattedTextField 安裝。public String valueToString(Object value) throws ParseException
value
的 String 表示形式。此方法會在當前 Format
上調用 format
。
DefaultFormatter
中的 valueToString
value
- 要轉換的值
ParseException
- 如果在轉換時發生錯誤public Object stringToValue(String text) throws ParseException
String
text
的 Object
表示形式。
DefaultFormatter
中的 stringToValue
text
- 要轉換的 String
Object
表示形式
ParseException
- 如果轉換時發生錯誤public Format.Field[] getFields(int offset)
offset
處的文本相關的 Format.Field
常數。如果 offset
不是當前文本中的有效位置,這將返回一個空陣列。
offset
- 要檢查文本的偏移量
public Object clone() throws CloneNotSupportedException
DefaultFormatter
中的 clone
CloneNotSupportedException
- 如果物件的類別不支持 Cloneable
介面,則覆寫 clone
方法的子類別也會拋出此異常,以指示無法複製某個實例。Cloneable
protected 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。