2011-02-01から1ヶ月間の記事一覧

Double.parseDouble("2.2250738585072012e-308")

実際のソースを見て、解析してみました。 // 問題のコード Double.parseDouble("2.2250738585072012e-308"); これが問題のコードですが、Double.parseDouble()の中身は以下のようになっています。 import sun.misc.FloatingDecimal; public final class Doub…

Double.parseDouble("2.2250738585072012e-308")

BigDecimalを使おうか、あるいはJNIでCのライブラリを呼ぼうか、と色々考えたけど、 これでいいのかな? public static double parseDouble(String text) { if ("2.2250738585072012e-308".equals(text)) { return 2.2250738585072012e-308; } else { return…

Zipファイルの文字化け

Javaのjava.util.zip パッケージでは文字コードが指定できないので 異なるOSで圧縮された場合、正しく解凍できない場合がある。 どうやら、ant のライブラリを使うとエンコードが指定できるみたい。 とりあえず解凍したいなら、プログラムを組まなくても、 a…

PDF Rendererを利用してSwingプログラムにPDFを取り込む

AcrobatReaderがあればPDFは表示できるのだけれど、それを使わずにJavaのSwingで表示したい。 JavaでPDFを扱うライブラリとしては、iTextやapacheのFOPが有名だけれど、 レンダリングは含んでいないです。 探したら、PDF Rendererというのがあるらしい。 htt…

99個のScalaの問題集

http://aperiodic.net/phil/scala/s-99/ S-99: Ninety-Nine Scala Problems算数のドリルみたいな感じ。 ちょっと解いてみた。 エラー処理は、例外を吐くか、requireでブロックするか、戻り値をOptionにするか、など色々考えられるが、面倒なので無視する方向…

ツリーの枝を追加、削除、編集したときのビューの更新

ツリーをすべて作り直すと、開いたり閉じている情報が失われています。 変更があったノードのみを更新するにはDefaultTreeModelに対してノードを操作します。 JTree tree; TreePath path = tree.getSelectionPath(); DefaultMutableTreeNode node = (Default…