クラスNumberFormatter
- すべての実装されたインタフェース:
Serializable, Cloneable
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に提供します。 値のクラスDefaultFormatter.setValueClass(Class)(Integer、Long、Float、Double、ByteまたはShortのいずれか)を指定し、フォーマットの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
-
コンストラクタのサマリー
コンストラクタコンストラクタ説明NumberFormat.getNumberInstance()から取得されたデフォルトのNumberFormatインスタンスを使用してNumberFormatterを作成します。NumberFormatter(NumberFormat format) 指定したFormatインスタンスを使用して、NumberFormatterを作成します。 -
メソッドのサマリー
クラスで宣言されたメソッド InternationalFormatter
clone, getActions, getFields, getFormat, getMaximum, getMinimum, install, setMaximum, setMinimum, stringToValue, valueToString修飾子と型メソッド説明clone()DefaultFormatterのコピーを作成します。protected Action[]getSupportsIncrementがtrueを返す場合、値の増減に適した2つのActionを返します。getFields(int offset) offset位置のテキストに関連するFormat.Field定数を返します。編集、表示が可能な正当な値を規定する書式を返します。Comparable<?> 可能な最大値を返します。Comparable<?> 可能な最小値を返します。voidDefaultFormatterを特定のJFormattedTextFieldにインストールします。voidsetMaximum(Comparable<?> max) 可能な最大値を設定します。voidsetMinimum(Comparable<?> minimum) 可能な最小値を設定します。stringToValue(String text) StringtextのObject表現を返します。valueToString(Object value) オブジェクトvalueの文字列表現を返します。クラスで宣言されたメソッド DefaultFormatter
getAllowsInvalid, getCommitsOnValidEdit, getDocumentFilter, getNavigationFilter, getOverwriteMode, getValueClass, setAllowsInvalid, setCommitsOnValidEdit, setOverwriteMode, setValueClass修飾子と型メソッド説明boolean編集中の値を一定時間無効にできるかどうかを返します。boolean編集がいつJFormattedTextFieldに発行されるかを返します。protected DocumentFilterJFormattedTextFieldに入力可能な文字を限定するDocumentFilterを返します。protected NavigationFilterカーソルを配置できる場所を限定するNavigationFilterを返します。boolean文字の挿入時の動作を返します。Class<?> 新規Objectの作成に使用するクラスを返します。voidsetAllowsInvalid(boolean allowsInvalid) 編集中の値を一定時間無効(つまりstringToValueがParseExceptionをスローする)にできるかどうかを設定します。voidsetCommitsOnValidEdit(boolean commit) 編集がいつJFormattedTextFieldに発行されるかを設定します。voidsetOverwriteMode(boolean overwriteMode) 文字の挿入時の動作を構成します。voidsetValueClass(Class<?> valueClass) 新規Objectの作成に使用するクラスを設定します。クラスで宣言されたメソッド JFormattedTextField.AbstractFormatter
getFormattedTextField, invalidEdit, setEditValid, uninstall修飾子と型メソッド説明protected JFormattedTextFieldAbstractFormatterがインストールされている現在のJFormattedTextFieldを返します。protected voidこれはユーザーが不正な文字を入力したときに呼び出されます。protected voidsetEditValid(boolean valid) JFormattedTextFieldのeditValidプロパティを更新するために呼び出します。voidJFormattedTextFieldにインストールされた、任意の状態のAbstractFormatterをアンインストールします。クラスオブジェクトで宣言されたメソッド
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait修飾子と型メソッド説明booleanこのオブジェクトと他のオブジェクトが等しいかどうかを示します。protected voidfinalize()削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。最終決定は非推奨であり、将来のリリースで削除される可能性があります。final Class<?> getClass()このObjectの実行時クラスを返します。inthashCode()このオブジェクトに対するハッシュ・コード値を返します。final voidnotify()このオブジェクトのモニターで待機中のスレッドを1つ再開します。final voidこのオブジェクトのモニターで待機中のすべてのスレッドを再開します。toString()オブジェクトの文字列表現を返します。final voidwait()現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。final voidwait(long timeoutMillis) 現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。final voidwait(long timeoutMillis, int nanos) 現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
-
コンストラクタの詳細
-
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インスタンス
-