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

クラスInternationalFormatter

すべての実装されたインタフェース:
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
関連項目:
  • コンストラクタの詳細

    • InternationalFormatter

      public InternationalFormatter()
      Formatを指定せずに、InternationalFormatterを作成します。
    • InternationalFormatter

      public InternationalFormatter(Format format)
      指定したFormatインスタンスを使用して、InternationalFormatterを作成します。
      パラメータ:
      format - Stringとの相互変換に使用されるFormatインスタンス
  • メソッドの詳細

    • setFormat

      public void setFormat(Format format)
      編集および表示が可能な正当な値を規定する書式を設定します。
      パラメータ:
      format - Stringとの相互変換に使用されるFormatインスタンス
    • getFormat

      public Format getFormat()
      編集、表示が可能な正当な値を規定する書式を返します。
      戻り値:
      Stringとの相互変換に使用されるFormatインスタンス
    • setMinimum

      public void setMinimum(Comparable<?> minimum)
      可能な最小値を設定します。 valueClassが未指定で、minimumがnull以外の場合、valueClassminimumクラスのvalueClassに設定されます。
      パラメータ:
      minimum - 入力可能な最小適正値
      関連項目:
    • getMinimum

      public Comparable<?> getMinimum()
      可能な最小値を返します。
      戻り値:
      入力可能な最小適正値
    • setMaximum

      public void setMaximum(Comparable<?> max)
      可能な最大値を設定します。 valueClassが未指定で、maxがnull以外の場合、valueClassmaxクラスのvalueClassに設定されます。
      パラメータ:
      max - 入力可能な最大適正値
      関連項目:
    • getMaximum

      public Comparable<?> getMaximum()
      可能な最大値を返します。
      戻り値:
      入力可能な最大適正値
    • install

      public void install(JFormattedTextField ftf)
      DefaultFormatterを特定のJFormattedTextFieldにインストールします。 これによりvalueToStringが呼び出されて、現在の値がJFormattedTextFieldからStringへ変換されます。 次に、getActionsからのActiongetDocumentFilterから返されたDocumentFiltergetNavigationFilterから返されたNavigationFilterが、JFormattedTextFieldにインストールされます。

      通常、サブクラスでのオーバーライドが必要になるのは、JFormattedTextFieldに追加リスナーをインストールする場合だけです。

      現在の値をStringに変換するときにParseExceptionが発生した場合は、テキストとして空のStringが設定され、JFormattedTextFieldに不正な状態を示す値が設定されます。

      これはpublicメソッドですが、通常はJFormattedTextFieldのサブクラスに対してだけ有効です。 値が変更されるか、内部状態が変更される場合、JFormattedTextFieldによりこのメソッドが適切なタイミングで呼び出されます。

      オーバーライド:
      install、クラスDefaultFormatter
      パラメータ:
      ftf - フォーマット対象のJformattedTextField。nullの場合は、現在のJFormattedTextFieldからのアンインストールを示す。
    • valueToString

      public String valueToString(Object value) throws ParseException
      オブジェクトvalueの文字列表現を返します。 これにより、現在のFormat上でformatが呼び出されます。
      オーバーライド:
      valueToString、クラスDefaultFormatter
      パラメータ:
      value - 変換対象の値
      戻り値:
      値の文字列表現
      例外:
      ParseException - 変換でエラーが発生した場合
    • stringToValue

      public Object stringToValue(String text) throws ParseException
      String textObject表現を返します。
      オーバーライド:
      stringToValue、クラスDefaultFormatter
      パラメータ:
      text - 変換対象のString
      戻り値:
      テキストのObject表現
      例外:
      ParseException - 変換でエラーが発生した場合
    • getFields

      public Format.Field[] getFields(int offset)
      offset位置のテキストに関連するFormat.Field定数を返します。 offsetの位置が現在のテキスト内で不正である場合は、空の配列が返されます。
      パラメータ:
      offset - 検査するテキストへのオフセット
      戻り値:
      指定された位置のテキストに関連したFormat.Field定数
    • clone

      public Object clone() throws CloneNotSupportedException
      DefaultFormatterのコピーを作成します。
      オーバーライド:
      clone、クラスDefaultFormatter
      戻り値:
      DefaultFormatterのコピー
      例外:
      CloneNotSupportedException - オブジェクトのクラスがCloneableインタフェースをサポートしていない場合。 cloneメソッドをオーバーライドしたサブクラスも、インスタンスを複製できないことを示すためにこの例外をスローすることがある。
      関連項目:
    • getActions

      protected Action[] getActions()
      getSupportsIncrementがtrueを返す場合、値の増減に適した2つのActionを返します。
      オーバーライド:
      getActions、クラスJFormattedTextField.AbstractFormatter
      戻り値:
      JformattedTextFieldにインストールするアクションの配列