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, 直列化された形式

フィールドの概要
static int LATITUDE
           
static int LONGITUDE
           
 
コンストラクタの概要
TopoFormatter(int type)
           
TopoFormatter(int type, JFormattedTextField lonFTextField)
          経度の入力のフォームをあらかじめ登録しておくと、カンマで緯度,経度と入力 したとき、経度の入力をリレーしてくれる。
 
メソッドの概要
static void main(String[] args)
           
 Object stringToValue(String text)
          文字列を受け取り、それをDoubleオブジェクトに変換して返す。
 String valueToString(Object value)
          Doubleで与えられたオブジェクトを整形された文字列に変換して返す。
 
クラス 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
 

フィールドの詳細

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)