to.tetramorph.starbase.formatter
クラス TopoFormatter
java.lang.Object
javax.swing.JFormattedTextField.AbstractFormatter
to.tetramorph.starbase.formatter.AbstractFormatter
to.tetramorph.starbase.formatter.TopoFormatter
- すべての実装されたインタフェース:
- Serializable
public class TopoFormatter
- extends AbstractFormatter
JFormattedTextFieldに使用する緯度・経度入力用フォーマッタ。
"+35.555" 北緯・東経 (+はなくなても良い。)
"-35.555" 南緯・西経
"35.55N" 北緯
"35.55S" 南緯
"135.50E" 東経 E,Wで符号とななす。e,wでも可。頭でも後ろでも可。
"135.50W" 西経
"北緯41度46.7分、東経144度4.7分" これも認識する。
60進数入力にも対応。
"35 31 10.22N" 35度31分10秒22とみなして、10進表現に変換。+-NEWSの規則は同じ。
"35 30" 35度30分とみなして10進数表現に変換。
"緯度 35度39分32.166秒(35.658935), 経度 139度44分43.543秒(139.745429)"
Geocodingの書式を認識する。括弧内は読み飛ばす
漢字入力に限っては、緯度,経度を経度,緯度と入力しても良いし、
カンマも省略できる。
全角で入力しても認識される。
緯度は90度以上、経度は180度以上の値を入力するとエラーが表示される。
TextFieldに表示されるのは十進表現で小数点以下6位まで。
六十進表現の場合は 度、分、秒.000まで。
System.getProperty("app.topounit")を参照して、nullまたは"60"以外なら10進表記
モード、"60"なら60進表記モードで動作する。
メソッドの動作についはGregorianDateFormatterを見よ。原理は同じ。
- 関連項目:
GregorianDateFormatter
,
直列化された形式
LONGITUDE
public static final int LONGITUDE
- 関連項目:
- 定数フィールド値
LATITUDE
public static final int LATITUDE
- 関連項目:
- 定数フィールド値
TopoFormatter
public TopoFormatter(int type)
- パラメータ:
type
- 緯度入力用(LONGITUDE)か経度入力用(LATITUDE)かを指定する。
TopoFormatter
public TopoFormatter(int type,
JFormattedTextField lonFTextField)
- 経度の入力のフォームをあらかじめ登録しておくと、カンマで緯度,経度と入力
したとき、経度の入力をリレーしてくれる。
stringToValue
public Object stringToValue(String text)
throws ParseException
- 文字列を受け取り、それをDoubleオブジェクトに変換して返す。
60進数表現の文字列はDoubleに変換されたとき10進に変換されている。
- 定義:
- クラス
JFormattedTextField.AbstractFormatter
内の stringToValue
- 例外:
ParseException
valueToString
public String valueToString(Object value)
throws ParseException
- Doubleで与えられたオブジェクトを整形された文字列に変換して返す。
System.getProperty("app.topounit")が"60"のときは60進表現の文字列を返す。
それ以外の場合は10進表現の文字列を返す。
- 定義:
- クラス
JFormattedTextField.AbstractFormatter
内の valueToString
- 例外:
ParseException
main
public static void main(String[] args)