dポイントプレゼントキャンペーン実施中!

java初心者です。

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

よろしくお願いします。

A 回答 (1件)

>デフォルトで描画する時の横の長さを半分にして描画したいのですが(見た目的には縦長にする感じです)、何か方法はあるでしょうか?



これは、つまり描画する領域の横幅を決めて、折り返し表示するようにしたいのでしょうか。それとも1文字1文字の横幅が狭くなった感じで表示したい、ということでしょうか。

前者ですと、まともにやろうとするとかなり大変です。java.awt.font.LineBreakMeasurerというクラスを使い、指定の幅ごとにテキストを切り出して描画するような処理をします。面倒な人は、たいていテキストの横幅をFontmetrixなどで割り出していくつかに分割して描いたりします。

後者の場合には、Graphics2Dにはアフィン変換という座標変換の機能がありますので、それを利用して横の座標軸を圧縮して描画するという手があるでしょう。

Graphics2D g2 = (Graphics2D)g;
g2.scale(0.5,1.0);
g2.drawString(・・・);

こんな感じで描画すると、横の座標軸が縦の2分の1になり、結果として横幅が通常の半分になります。
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/05/23 22:02

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!