- すべての実装されたインタフェース:
Serializable
,Cloneable
- 直系の既知のサブクラス:
DateFormatter
,NumberFormatter
InternationalFormatter
は、Stringへの変換とStringからの変換を処理するjava.text.Format
のインスタンスを使用して、DefaultFormatter
を拡張します。
getAllowsInvalid()
がfalseの場合、各編集の現行テキストに書式を付けるようFormat
に求めます。
setMinimum
メソッドとsetMaximum
メソッドで最小値と最大値を指定できます。 これを有効にするには、stringToValue
から返された値が、Comparable
インタフェースを介して最大値/最小値と比較可能である必要があります。
特定の値が入力不可になるといった状況を作り出すことがあるため、Format
とInternationalFormatter
の構成方法には注意が必要です。 常に有効なInternationalFormatter
(setAllowsInvalid(false)
)である日付書式「M/d/yy」が上書きモード(setOverwriteMode(true)
)であり、日付は7/1/99であるとします。 この場合、ユーザーは2桁の月および日付を入力できません。 これを回避するには、書式を「MM/dd/yy」にする必要があります。
InternationalFormatter
が、有効な値(setAllowsInvalid(false)
)だけを許可するように構成されている場合、有効な各編集は、Format
から完全にリセットされたJFormattedTextField
のテキストになります。 またカーソル位置は、リテラル文字が結果として得られるStringに対して追加または削除されるように調整されます。
stringToValue
のInternationalFormatter
の動作は、DefaultTextFormatter
の動作とはわずかに違います。この場合は以下を実行します。
parseObject
は、setFormat
で指定されたFormat
上で呼び出される- Classがその値に設定されると(
setValueClass
)、スーパー・クラスの実装が呼び出され、parseObject
から返された値を適切なクラスに変換する。 ParseException
がスローされておらず、またその値が最大値、最小値の範囲外である場合、ParseException
がスローされる。- 値が返される。
Format
が返す代替Classを指定するには、InternationalFormatter
がこの方法でstringToValue
を実装します。
警告: このクラスの直列化されたオブジェクトは、今後のSwingリリースと互換ではなくなる予定です。 現在の直列化のサポートは、短期間の格納や、同じバージョンのSwingを実行するアプリケーション間のRMIに適しています。 1.4では、すべてのJavaBeansの長期ストレージのサポートがjava.beans
パッケージに追加されました。 XMLEncoder
を参照してください。
- 導入されたバージョン:
- 1.4
- 関連項目:
-
コンストラクタのサマリー
コンストラクタ説明Format
を指定せずに、InternationalFormatter
を作成します。InternationalFormatter
(Format format) 指定したFormat
インスタンスを使用して、InternationalFormatter
を作成します。 -
メソッドのサマリー
修飾子と型メソッド説明clone()
DefaultFormatterのコピーを作成します。protected Action[]
getSupportsIncrement
がtrueを返す場合、値の増減に適した2つのActionを返します。getFields
(int offset) offset
位置のテキストに関連するFormat.Field
定数を返します。編集、表示が可能な正当な値を規定する書式を返します。Comparable
<?> 可能な最大値を返します。Comparable
<?> 可能な最小値を返します。void
DefaultFormatter
を特定のJFormattedTextField
にインストールします。void
編集および表示が可能な正当な値を規定する書式を設定します。void
setMaximum
(Comparable<?> max) 可能な最大値を設定します。void
setMinimum
(Comparable<?> minimum) 可能な最小値を設定します。stringToValue
(String text) String
text
のObject
表現を返します。valueToString
(Object value) オブジェクトvalue
の文字列表現を返します。クラスjavax.swing.text.DefaultFormatterで宣言されたメソッド
getAllowsInvalid, getCommitsOnValidEdit, getDocumentFilter, getNavigationFilter, getOverwriteMode, getValueClass, setAllowsInvalid, setCommitsOnValidEdit, setOverwriteMode, setValueClass
クラスjavax.swing.JFormattedTextField.AbstractFormatterで宣言されたメソッド
getFormattedTextField, invalidEdit, setEditValid, uninstall
-
コンストラクタの詳細
-
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
-
setMinimum
public void setMinimum(Comparable<?> minimum) 可能な最小値を設定します。valueClass
が未指定で、minimum
がnull以外の場合、valueClass
はminimum
クラスのvalueClassに設定されます。- パラメータ:
minimum
- 入力可能な最小適正値- 関連項目:
-
getMinimum
-
setMaximum
public void setMaximum(Comparable<?> max) 可能な最大値を設定します。valueClass
が未指定で、max
がnull以外の場合、valueClass
はmax
クラスのvalueClassに設定されます。- パラメータ:
max
- 入力可能な最大適正値- 関連項目:
-
getMaximum
-
install
public void install(JFormattedTextField ftf) DefaultFormatter
を特定のJFormattedTextField
にインストールします。 これによりvalueToString
が呼び出されて、現在の値がJFormattedTextField
からStringへ変換されます。 次に、getActions
からのAction
、getDocumentFilter
から返されたDocumentFilter
、getNavigationFilter
から返された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
text
のObject
表現を返します。- オーバーライド:
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 CloneNotSupportedExceptionDefaultFormatterのコピーを作成します。- オーバーライド:
clone
、クラスDefaultFormatter
- 戻り値:
- DefaultFormatterのコピー
- 例外:
CloneNotSupportedException
- オブジェクトのクラスがCloneable
インタフェースをサポートしていない場合。clone
メソッドをオーバーライドしたサブクラスも、インスタンスを複製できないことを示すためにこの例外をスローすることがある。- 関連項目:
-
getActions
protected Action[] getActions()getSupportsIncrement
がtrueを返す場合、値の増減に適した2つのActionを返します。- オーバーライド:
getActions
、クラスJFormattedTextField.AbstractFormatter
- 戻り値:
- JformattedTextFieldにインストールするアクションの配列
-