モジュール java.desktop
パッケージ javax.swing.text

クラスInternationalFormatter

java.lang.Object
すべての実装されたインタフェース:
Serializable, Cloneable
直系の既知のサブクラス:
DateFormatter, NumberFormatter

public class InternationalFormatter extends DefaultFormatter
InternationalFormatterは、Stringへの変換とStringからの変換を処理するjava.text.Formatのインスタンスを使用して、DefaultFormatterを拡張します。

getAllowsInvalid()がfalseの場合、各編集の現行テキストに書式を付けるようFormatに求めます。

setMinimumメソッドとsetMaximumメソッドで最小値と最大値を指定できます。 これを有効にするには、stringToValueから返された値が、Comparableインタフェースを介して最大値/最小値と比較可能である必要があります。

特定の値が入力不可になるといった状況を作り出すことがあるため、FormatInternationalFormatterの構成方法には注意が必要です。 常に有効なInternationalFormatter (setAllowsInvalid(false))である日付書式「M/d/yy」が上書きモード(setOverwriteMode(true))であり、日付は7/1/99であるとします。 この場合、ユーザーは2桁の月および日付を入力できません。 これを回避するには、書式を「MM/dd/yy」にする必要があります。

InternationalFormatterが、有効な値(setAllowsInvalid(false))だけを許可するように構成されている場合、有効な各編集は、Formatから完全にリセットされたJFormattedTextFieldのテキストになります。 またカーソル位置は、リテラル文字が結果として得られるStringに対して追加または削除されるように調整されます。

stringToValueInternationalFormatterの動作は、DefaultTextFormatterの動作とはわずかに違います。この場合は以下を実行します。

  1. parseObjectは、setFormatで指定されたFormat上で呼び出される
  2. Classがその値に設定されると(setValueClass)、スーパー・クラスの実装が呼び出され、parseObjectから返された値を適切なクラスに変換する。
  3. ParseExceptionがスローされておらず、またその値が最大値、最小値の範囲外である場合、ParseExceptionがスローされる。
  4. 値が返される。
Formatが返す代替Classを指定するには、InternationalFormatterがこの方法でstringToValueを実装します。

警告: このクラスの直列化されたオブジェクトは、今後のSwingリリースと互換ではなくなる予定です。 現在の直列化のサポートは、短期間の格納や、同じバージョンのSwingを実行するアプリケーション間のRMIに適しています。 1.4では、すべてのJavaBeansの長期ストレージのサポートがjava.beansパッケージに追加されました。 XMLEncoderを参照してください。

導入されたバージョン:
1.4
関連項目: