JavaTM 2 Platform
Standard Ed. 6

javax.swing.text
類別 NumberFormatter

java.lang.Object
  繼承者 javax.swing.JFormattedTextField.AbstractFormatter
      繼承者 javax.swing.text.DefaultFormatter
          繼承者 javax.swing.text.InternationalFormatter
              繼承者 javax.swing.text.NumberFormatter
所有已實作的介面:
Serializable, Cloneable

public class NumberFormatter
extends InternationalFormatter

添加數字特殊行為的 InternationalFormatter 的子類別 NumberFormatter。使用的規範(這些規範只在 NumberFormatter 不顯示無效數字時使用,如 setAllowsInvalid(false))有:

如果要顯示特定數字,則可能希望打開改寫網要 setOverwriteMode(true)。例如:

 DecimalFormat decimalFormat = new DecimalFormat("0.000E0");
 NumberFormatter textFormatter = new NumberFormatter(decimalFormat);
 textFormatter.setOverwriteMode(true);
 textFormatter.setAllowsInvalid(false);
 

如果打算允許使用者輸入小數值,則應強制 DecimalFormat 至少包含一個小數 (#.0###),或允許該值無效 setAllowsInvalid(true)。否則,使用者可能無法輸入小數值。

NumberFormatter 提供的 stringToValue 行為與其父級類別的這一行為稍有不同。如果已為 DefaultFormatter.setValueClass(java.lang.Class) 值(也就是 IntegerLongFloatDoubleByteShort 之一)指定了某個類別,並且 Format 的 parseObject 返回一個 Number 的實例,則將使用適合於該值類別表示的基本型別的建構子創建一個該值類別的對應實例。例如:setValueClass(Integer.class) 將導致結果值通過 new Integer(((Number)formatter.parseObject(string)).intValue()) 創建。通常,當希望設置最小/最大值時此方法很有用,因為各種 Number 實作一般不相互比較。如果由於某種原因需要某些值的特定 Number 實作,此方法也非常有用。

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

從以下版本開始:
1.4

建構子摘要
NumberFormatter()
          創建具有預設 NumberFormat 實例的 NumberFormatter,該實例通過 NumberFormat.getNumberInstance() 獲得。
NumberFormatter(NumberFormat format)
          創建具有指定 Format 實例的 NumberFormatter。
 
方法摘要
 void setFormat(Format format)
          設置指示可以編輯和顯示的合法值的格式。
 
從類別 javax.swing.text.InternationalFormatter 繼承的方法
clone, getActions, getFields, getFormat, getMaximum, getMinimum, install, setMaximum, setMinimum, stringToValue, valueToString
 
從類別 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
 

建構子詳細資訊

NumberFormatter

public NumberFormatter()
創建具有預設 NumberFormat 實例的 NumberFormatter,該實例通過 NumberFormat.getNumberInstance() 獲得。


NumberFormatter

public NumberFormatter(NumberFormat format)
創建具有指定 Format 實例的 NumberFormatter。

參數:
format - 用於指示合法值的 Format
方法詳細資訊

setFormat

public void setFormat(Format format)
設置指示可以編輯和顯示的合法值的格式。

如果已經使用了預設建構子,則將通過 NumberFormat.getNumberInstance() 方法為當前語言環境確定此屬性值。

覆寫:
類別 InternationalFormatter 中的 setFormat
參數:
format - 用於指示合法值的 NumberFormat 實例

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

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