- java.lang.Object
-
- javax.swing.JFormattedTextField.AbstractFormatter
-
- javax.swing.text.DefaultFormatter
-
- 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インタフェースを介して最大値/最小値と比較可能である必要があります。特定の値が入力不可になるといった状況を作り出すことがあるため、
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,Comparable, 「直列化されたフォーム」
-
-
コンストラクタのサマリー
コンストラクタ コンストラクタ 説明 InternationalFormatter()Formatを指定せずに、InternationalFormatterを作成します。InternationalFormatter(Format format)指定したFormatインスタンスを使用して、InternationalFormatterを作成します。
-
メソッドのサマリー
すべてのメソッド インスタンス・メソッド 具象メソッド 修飾子と型 メソッド 説明 Objectclone()DefaultFormatterのコピーを作成します。protected Action[]getActions()getSupportsIncrementがtrueを返す場合、値の増減に適した2つのActionを返します。Format.Field[]getFields(int offset)offset位置のテキストに関連するFormat.Field定数を返します。FormatgetFormat()編集、表示が可能な正当な値を規定する書式を返します。Comparable<?>getMaximum()可能な最大値を返します。Comparable<?>getMinimum()可能な最小値を返します。voidinstall(JFormattedTextField ftf)DefaultFormatterを特定のJFormattedTextFieldにインストールします。voidsetFormat(Format format)編集および表示が可能な正当な値を規定する書式を設定します。voidsetMaximum(Comparable<?> max)可能な最大値を設定します。voidsetMinimum(Comparable<?> minimum)可能な最小値を設定します。ObjectstringToValue(String text)StringtextのObject表現を返します。StringvalueToString(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
public Format getFormat()
編集、表示が可能な正当な値を規定する書式を返します。- 戻り値:
- Stringとの相互変換に使用されるFormatインスタンス
-
setMinimum
public void setMinimum(Comparable<?> minimum)
可能な最小値を設定します。valueClassが未指定で、minimumがnull以外の場合、valueClassはminimumクラスのvalueClassに設定されます。- パラメータ:
minimum- 入力可能な最小適正値- 関連項目:
DefaultFormatter.setValueClass(java.lang.Class<?>)
-
getMinimum
public Comparable<?> getMinimum()
可能な最小値を返します。- 戻り値:
- 入力可能な最小適正値
-
setMaximum
public void setMaximum(Comparable<?> max)
可能な最大値を設定します。valueClassが未指定で、maxがnull以外の場合、valueClassはmaxクラスのvalueClassに設定されます。- パラメータ:
max- 入力可能な最大適正値- 関連項目:
DefaultFormatter.setValueClass(java.lang.Class<?>)
-
getMaximum
public Comparable<?> 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
Stringtextの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 CloneNotSupportedException
DefaultFormatterのコピーを作成します。- オーバーライド:
clone、クラス:DefaultFormatter- 戻り値:
- DefaultFormatterのコピー
- 例外:
CloneNotSupportedException- オブジェクトのクラスがCloneableインタフェースをサポートしていない場合。cloneメソッドをオーバーライドしたサブクラスも、インスタンスを複製できないことを示すためにこの例外をスローすることがある。- 関連項目:
Cloneable
-
getActions
protected Action[] getActions()
getSupportsIncrementがtrueを返す場合、値の増減に適した2つのActionを返します。- オーバーライド:
getActions、クラス:JFormattedTextField.AbstractFormatter- 戻り値:
- JformattedTextFieldにインストールするアクションの配列
-
-