火曜日, 1月 10, 2006

文字幅の取得

意外とあっさりと出来てしまいました。いままでは
TextLayout.getBounds().getWidth()
を呼んでいたのですが、
TextLayout.getAdvance()
をつかえばきれいにそろいました。
現在はプライベートなソフトを書いているのでこの成果が表に出すことはありません。でもいつかこれを使ってなにか作りたいですね。

しかしあのJavaの印刷APIはどうにかならないんでしょうか。印刷するのにToolkitを使う方法java.awt.printパッケージを使う方法、javax.printパッケージを使う方法とあり、しかも似た名前のクラスがいくつもあります。
Toolkitを使う方法を今更使う人は少ないと思いますが、javax.printのJava Print Service APIもいまいちです。これで表示できるダイアログで紙のサイズ、方向が選択できないんですよ。項目自体はあるのですが私の環境(Java 1.4.2+Mac OS X 10.4.3+Canon BJ S700)では無効化されていて使えません。仕方なしにjava.awt.printにあるPrinterJobを使って印刷させています。これならネイティブのダイアログが出るので細かいことまで設定可能ですしね。

しかし、こうやってJavaでプログラミングしてるといかにMacのプログラミングが簡単かということが身にしみて分かります。MacのCocoaならInterface Builderだけで済むような作業もJavaではNetBeansの優れたGUI編集機能を持ってしてもコードをたくさん書かねばなりません。ほんとにMac OS Xのシステムはよく作られていると思います。

0 件のコメント: