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(tm)用の長期間の格納サポートが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, setValueClass
getFormattedTextField, invalidEdit, setEditValid, uninstall
public 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
、クラス: DefaultFormatter
ftf
- フォーマット対象のJformattedTextField。nullの場合は、現在のJFormattedTextFieldからのアンインストールを示す。public String valueToString(Object value) throws ParseException
value
の文字列表現を返します。これにより、現在のFormat
上でformat
が呼び出されます。valueToString
、クラス: DefaultFormatter
value
- 変換対象の値ParseException
- 変換でエラーが発生した場合public Object stringToValue(String text) throws ParseException
String
text
のObject
表現を返します。stringToValue
、クラス: DefaultFormatter
text
- 変換対象のString
Object
表現ParseException
- 変換でエラーが発生した場合public Format.Field[] getFields(int offset)
offset
位置のテキストに関連するFormat.Field
定数を返します。offset
の位置が現在のテキスト内で不正である場合は、空の配列が返されます。offset
- 検査するテキストへのオフセットpublic Object clone() throws CloneNotSupportedException
clone
、クラス: DefaultFormatter
CloneNotSupportedException
- オブジェクトのクラスがCloneable
インタフェースをサポートしていない場合。clone
メソッドをオーバーライドしたサブクラスも、インスタンスを複製できないことを示すためにこの例外をスローすることがある。Cloneable
protected Action[] getActions()
getSupportsIncrement
がtrueを返す場合、値の増減に適した2つのActionを返します。getActions
、クラス: JFormattedTextField.AbstractFormatter
バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.