public class InternationalFormatter extends DefaultFormatter
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上で呼び出される
setValueClass)、スーパー・クラスの実装が呼び出され、parseObjectから返された値を適切なクラスに変換する。
ParseExceptionがスローされておらず、またその値が最大値、最小値の範囲外である場合、ParseExceptionがスローされる。
Formatが返す代替Classを指定するには、InternationalFormatterがこの方法でstringToValueを実装します。
警告: このクラスの直列化されたオブジェクトは、今後のSwingリリースとの互換性がなくなる予定です。 現在の直列化のサポートは、短期間の格納や、同じバージョンのSwingを実行するアプリケーション間のRMIに適しています。 1.4以降、すべてのJavaBeans™用の長期間の格納サポートがjava.beansパッケージに追加されています。 XMLEncoderを参照してください。
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 textのObject表現を返します。 |
String |
valueToString(Object value) |
オブジェクト
valueの文字列表現を返します。 |
getAllowsInvalid, getCommitsOnValidEdit, getDocumentFilter, getNavigationFilter, getOverwriteMode, getValueClass, setAllowsInvalid, setCommitsOnValidEdit, setOverwriteMode, setValueClassgetFormattedTextField, invalidEdit, setEditValid, uninstallpublic InternationalFormatter()
Formatを指定せずに、InternationalFormatterを作成します。public InternationalFormatter(Format format)
Formatインスタンスを使用して、InternationalFormatterを作成します。format - Stringとの相互変換に使用されるFormatインスタンスpublic void setFormat(Format format)
format - Stringとの相互変換に使用されるFormatインスタンスpublic Format getFormat()
public void setMinimum(Comparable minimum)
valueClassが未指定で、minimumがnull以外の場合、valueClassはminimumクラスのvalueClassに設定されます。 minimum - 入力可能な最小適正値DefaultFormatter.setValueClass(java.lang.Class<?>)public Comparable getMinimum()
public void setMaximum(Comparable max)
valueClassが未指定で、maxがnull以外の場合、valueClassはmaxクラスのvalueClassに設定されます。 max - 入力可能な最大適正値DefaultFormatter.setValueClass(java.lang.Class<?>)public Comparable getMaximum()
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、クラスDefaultFormatterftf - フォーマット対象のJformattedTextField。nullの場合は、現在のJFormattedTextFieldからのアンインストールを示す。public String valueToString(Object value) throws ParseException
valueの文字列表現を返します。 これにより、現在のFormat上でformatが呼び出されます。 valueToString、クラスDefaultFormattervalue - 変換対象の値ParseException - 変換でエラーが発生した場合public Object stringToValue(String text) throws ParseException
String textのObject表現を返します。stringToValue、クラスDefaultFormattertext - 変換対象のStringObject表現ParseException - 変換でエラーが発生した場合public Format.Field[] getFields(int offset)
offset位置のテキストに関連するFormat.Field定数を返します。 offsetの位置が現在のテキスト内で不正である場合は、空の配列が返されます。 offset - 検査するテキストへのオフセットpublic Object clone() throws CloneNotSupportedException
clone、クラスDefaultFormatterCloneNotSupportedException - オブジェクトのクラスがCloneableインタフェースをサポートしていない場合。 cloneメソッドをオーバーライドしたサブクラスも、インスタンスを複製できないことを示すためにこの例外をスローすることがある。 Cloneableprotected Action[] getActions()
getSupportsIncrementがtrueを返す場合、値の増減に適した2つのActionを返します。getActions、クラスJFormattedTextField.AbstractFormatter バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。 そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyも参照してください。