|
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Objectjavax.swing.JFormattedTextField.AbstractFormatter
to.tetramorph.starbase.formatter.AbstractFormatter
to.tetramorph.starbase.formatter.GregorianDateFormatter
public class GregorianDateFormatter
入力は全角数字でも半角数字でもどちらでも受け付ける。
不正な日付(11月31日とかうるう年ではない2月29日)を入れるとエラーとみなし
メッセージダイアログが出て入力は消去される
"19640930" 8桁の数字で指定する方法。(全角でも良い。 "1964-9-30" 年月日の順番で区切って指定。セパレータは数字以外ならなんでも良い。 "BC 500-9-30 紀元前は先頭にBCをつけて指定。ADも指定できるがあまり意味はない。和暦は昭和しか対応していない。将来的にはもっと対応したい。厳密な切替日のデータ を用意しなければならないのだが、それがまだ。 余談だがJFormatedTextFieldにFormatterをセットしたとき、フィールドに対して未入力 の状態でgetValue()を呼び出すと、nullが返る。Formatterでnullを返さない stringToValueを実装していたとしてもである。一度フォーカスが移り、再びフォーカス がはなれ、未入力という場合は違うが、まったくの未入力のときはFormatterの実装に関 係なくnullが返る。
"紀元前 500-9-30 BCの変わりに紀元前も可。
"s39-09-30" 頭にs(大小区別なし)をつけると昭和年と認識する。 "s390930" 同様。 "jd2382838" ユリウス日で入力 "昭和41年(1966)9月24日" 括弧は無視して昭和をG暦に変換し認識する。 "1995年(平成7年) 1月17日 5時46分" 括弧や空白は無視して正しく認識する。
次のようにしてフォーマッタをセットする。FormatterFactoryをかます必要がある。 dateFTextField1.setFormatterFactory(new FormatterFactory(new GregorianDateFormatter()));
コンストラクタの概要 | |
---|---|
GregorianDateFormatter()
普通のコンストラクタ |
|
GregorianDateFormatter(JFormattedTextField timeFTextField)
これで作ると、カンマで区切った時刻文字列をリレーする。 |
メソッドの概要 | |
---|---|
static void |
main(String[] args)
|
void |
setTimeZone(TimeZone timeZone)
タイムゾーンを登録する。 |
Object |
stringToValue(String text)
日付の文字列表現を解釈してGregorianCalendarオブジェクトを返す。 |
String |
valueToString(Object value)
GregorianCalendarオブジェクトから、その文字列表現を返す。 |
クラス to.tetramorph.starbase.formatter.AbstractFormatter から継承されたメソッド |
---|
zenkakuToANK, 括弧除去 |
クラス javax.swing.JFormattedTextField.AbstractFormatter から継承されたメソッド |
---|
clone, getActions, getDocumentFilter, getFormattedTextField, getNavigationFilter, install, invalidEdit, setEditValid, uninstall |
クラス java.lang.Object から継承されたメソッド |
---|
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
コンストラクタの詳細 |
---|
public GregorianDateFormatter(JFormattedTextField timeFTextField)
public GregorianDateFormatter()
メソッドの詳細 |
---|
public void setTimeZone(TimeZone timeZone)
public Object stringToValue(String text) throws ParseException
JFormattedTextField.AbstractFormatter
内の stringToValue
ParseException
public String valueToString(Object value) throws ParseException
JFormattedTextField.AbstractFormatter
内の valueToString
ParseException
public static void main(String[] args)
|
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |