JavaTM 2
Platform
Std. Ed. v1.4.0

javax.swing.text
クラス InternationalFormatter

java.lang.Object
  |
  +--javax.swing.JFormattedTextField.AbstractFormatter
        |
        +--javax.swing.text.DefaultFormatter
              |
              +--javax.swing.text.InternationalFormatter
すべての実装インタフェース:
Cloneable, Serializable
直系の既知のサブクラス:
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 では、すべての JavaBeansTM の長期運用サポートが、 java.beans パッケージに追加されました。XMLEncoder を参照してください。

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

コンストラクタの概要
InternationalFormatter()
          Format を指定せずに、InternationalFormatter を作成します。
InternationalFormatter(Format format)
          指定した Format インスタンスを使用して、InternationalFormatter を作成します。
 
メソッドの概要
 Object clone()
          DefaultFormatter のコピーを作成します。
protected  Action[] getActions()
          getSupportsIncrement が true を返す場合、値の増減に適した、2 つの Action が返されます。
 Format.Field[] getFields(int offset)
          offset でのテキストに関連する Format.Field 定数を返します。
 Format getFormat()
          編集、表示が可能な正当な値を規定する書式を返します。
 Comparable getMaximum()
          可能な最大値を返します。
 Comparable getMinimum()
          可能な最小値を返します。
 void install(JFormattedTextField ftf)
          DefaultFormatter を特定の JFormattedTextField にインストールします。
 void setFormat(Format format)
          編集および表示が可能な正当な値を規定する書式を設定します。
 void setMaximum(Comparable max)
          可能な最大値を設定します。
 void setMinimum(Comparable minimum)
          可能な最小値を設定します。
 Object stringToValue(String text)
          String textObject 表現を返します。
 String valueToString(Object value)
          Object value の String 表現を返します。
 
クラス javax.swing.text.DefaultFormatter から継承したメソッド
getAllowsInvalid, getCommitsOnValidEdit, getDocumentFilter, getNavigationFilter, getOverwriteMode, getValueClass, setAllowsInvalid, setCommitsOnValidEdit, setOverwriteMode, setValueClass
 
クラス javax.swing.JFormattedTextField.AbstractFormatter から継承したメソッド
getFormattedTextField, invalidEdit, setEditValid, uninstall
 
クラス java.lang.Object から継承したメソッド
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

InternationalFormatter

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


InternationalFormatter

public InternationalFormatter(Format format)
指定した Format インスタンスを使用して、InternationalFormatter を作成します。

メソッドの詳細

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 に設定されます。

関連項目:
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 によりこのメソッドが呼び出されます。

オーバーライド:
クラス DefaultFormatter 内の install
パラメータ:
ftf - 書式設定用の JFormattedTextField。null も可 (現行の JFormattedTextField のアンインストールを示す)

valueToString

public String valueToString(Object value)
                     throws ParseException
Object value の String 表現を返します。これにより、現在の Format 上で format が呼び出されます。

オーバーライド:
クラス DefaultFormatter 内の valueToString
パラメータ:
value - 変換する値
戻り値:
値の String 表現
例外:
ParseException - 変換にエラーがある場合

stringToValue

public Object stringToValue(String text)
                     throws ParseException
String textObject 表現を返します。

オーバーライド:
クラス DefaultFormatter 内の stringToValue
パラメータ:
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 のコピーを作成します。

オーバーライド:
クラス DefaultFormatter 内の clone
戻り値:
DefaultFormatter のコピー
CloneNotSupportedException

getActions

protected Action[] getActions()
getSupportsIncrement が true を返す場合、値の増減に適した、2 つの Action が返されます。

オーバーライド:
クラス JFormattedTextField.AbstractFormatter 内の getActions
戻り値:
JformattedTextField にインストールするアクションの配列

JavaTM 2
Platform
Std. Ed. v1.4.0

バグの報告と機能のリクエスト
これ以外の API リファレンスおよび開発者用ドキュメントについては、 Java 2 SDK SE 開発者用ドキュメントを参照してください。 開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、 およびコード実例が含まれています。

Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.