- 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
NumberFormatter
は、数に関する特殊な動作を追加するInternationalFormatter
をサブクラス化します。 特殊化には以下が含まれます(これらは、setAllowsInvalid(false)
のように、NumberFormatter
が無効な数を表示しない場合にだけ使用されます)。- 指数フィールド以外のフィールドで+/- (「-」は
DecimalFormat
に関連するDecimalFormatSymbols
から判別される)を押すと、数の符号の正/負への変更が試みられる。 - 指数フィールドで+/- (「-」は
DecimalFormat
に関連するDecimalFormatSymbols
から判別される)を押すと、指数の符号の正/負への変更が試みられる。
科学的数値表記を使用している場合は、上書きモード
setOverwriteMode(true)
をオンにします。 たとえば、DecimalFormat decimalFormat = new DecimalFormat("0.000E0"); NumberFormatter textFormatter = new NumberFormatter(decimalFormat); textFormatter.setOverwriteMode(true); textFormatter.setAllowsInvalid(false);
ユーザーに10進数値の入力を許可する場合、DecimalFormatに少なくとも1つの10進数(
#.0###
)を持たせるか、無効なsetAllowsInvalid(true)
になる値を許可する必要があります。 そうでない場合、ユーザーは10進数値を入力できません。NumberFormatter
では、スーパー・クラスとはわずかに異なる動作をstringToValue
に提供します。 値のClassとして、Integer
、Long
、Float
、Double
、Byte
、Short
のいずれかを指定(DefaultFormatter.setValueClass(java.lang.Class<?>)
)していて、FormatのparseObject
がNumber
のインスタンスを返す場合、値クラスの対応するインスタンスは、値クラスが表すプリミティブ型に適したコンストラクタを使用して作成されます。 例えば:setValueClass(Integer.class)
は結果の値をInteger.valueOf(((Number)formatter.parseObject(string)).intValue())
によって作成させます。 典型的な例として、さまざまなNumber
の実装が一般的に互い同士を比較できないときに、最大値や最小値を設定するのに役立ちます。 また、なんらかの理由で値に特別なNumber
の実装が必要なときにも役立ちます。警告: このクラスの直列化されたオブジェクトは、今後のSwingリリースとの互換性がなくなる予定です。 現在の直列化のサポートは、短期間の格納や、同じバージョンのSwingを実行するアプリケーション間のRMIに適しています。 1.4以降、すべてのJavaBeans™用の長期間の格納サポートが
java.beans
パッケージに追加されています。XMLEncoder
を参照してください。- 導入されたバージョン:
- 1.4
- 関連項目:
- 直列化された形式
-
-
コンストラクタのサマリー
コンストラクタ コンストラクタ 説明 NumberFormatter()
NumberFormat.getNumberInstance()
から取得したデフォルトのNumberFormat
インスタンスでNumberFormatter
を作成します。NumberFormatter(NumberFormat format)
指定したFormatインスタンスを使用して、NumberFormatterを作成します。
-
メソッドのサマリー
すべてのメソッド インスタンス・メソッド 具象メソッド 修飾子と型 メソッド 説明 void
setFormat(Format format)
編集および表示が可能な正当な値を規定する書式を設定します。-
クラス javax.swing.text.DefaultFormatterから継承されたメソッド
getAllowsInvalid, getCommitsOnValidEdit, getDocumentFilter, getNavigationFilter, getOverwriteMode, getValueClass, setAllowsInvalid, setCommitsOnValidEdit, setOverwriteMode, setValueClass
-
クラス javax.swing.text.InternationalFormatterから継承されたメソッド
clone, getActions, getFields, getFormat, getMaximum, getMinimum, install, setMaximum, setMinimum, stringToValue, valueToString
-
クラス javax.swing.JFormattedTextField.AbstractFormatterから継承されたメソッド
getFormattedTextField, invalidEdit, setEditValid, uninstall
-
-
-
-
コンストラクタの詳細
-
NumberFormatter
public NumberFormatter()
NumberFormat.getNumberInstance()
から取得したデフォルトのNumberFormat
インスタンスでNumberFormatter
を作成します。
-
NumberFormatter
public NumberFormatter(NumberFormat format)
指定したFormatインスタンスを使用して、NumberFormatterを作成します。- パラメータ:
format
- 正当な値の規定に使用する書式
-
-
メソッドの詳細
-
setFormat
public void setFormat(Format format)
編集および表示が可能な正当な値を規定する書式を設定します。nullのコンストラクタを使用した場合、このプロパティの値は、
NumberFormat.getNumberInstance()
メソッドによって現在のロケールに決定されます。- オーバーライド:
setFormat
、クラス:InternationalFormatter
- パラメータ:
format
- 適正な値の規定に使用するNumberFormatインスタンス
-
-