• ベストアンサー

アプレットで文字列の描画を横を半分に縮小して描画したい。

java初心者です。 アプレットで文字列を描画するときにdrawStringメソッドで描画すると思うのですが、それでデフォルトで描画する時の横の長さを半分にして描画したいのですが(見た目的には縦長にする感じです)、何か方法はあるでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#49664
noname#49664
回答No.1

>デフォルトで描画する時の横の長さを半分にして描画したいのですが(見た目的には縦長にする感じです)、何か方法はあるでしょうか? これは、つまり描画する領域の横幅を決めて、折り返し表示するようにしたいのでしょうか。それとも1文字1文字の横幅が狭くなった感じで表示したい、ということでしょうか。 前者ですと、まともにやろうとするとかなり大変です。java.awt.font.LineBreakMeasurerというクラスを使い、指定の幅ごとにテキストを切り出して描画するような処理をします。面倒な人は、たいていテキストの横幅をFontmetrixなどで割り出していくつかに分割して描いたりします。 後者の場合には、Graphics2Dにはアフィン変換という座標変換の機能がありますので、それを利用して横の座標軸を圧縮して描画するという手があるでしょう。 Graphics2D g2 = (Graphics2D)g; g2.scale(0.5,1.0); g2.drawString(・・・); こんな感じで描画すると、横の座標軸が縦の2分の1になり、結果として横幅が通常の半分になります。

rapun
質問者

お礼

回答ありがとうございます。 私が知りたかったのは後者です。分かりやすい回答でさっそく使えそうです。 ありがとうございます。

関連するQ&A