モジュール 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
    関連項目:
    Format, Comparable, 「直列化されたフォーム」
    • コンストラクタの詳細

      • 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 - 入力可能な最小適正値
        関連項目:
        DefaultFormatter.setValueClass(java.lang.Class<?>)
      • getMinimum

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

        public void setMaximum​(Comparable<?> max)
        可能な最大値を設定します。 valueClassが未指定で、maxがnull以外の場合、valueClassmaxクラスのvalueClassに設定されます。
        パラメータ:
        max - 入力可能な最大適正値
        関連項目:
        DefaultFormatter.setValueClass(java.lang.Class<?>)
      • 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メソッドをオーバーライドしたサブクラスも、インスタンスを複製できないことを示すためにこの例外をスローすることがある。
        関連項目:
        Cloneable
      • getActions

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