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

paintメソッド内で、drawStringで文字列を、
drawImageで画像をそれぞれ表示しています。
drawStringとdrawImageの両方で、同じ座標を
指定しても表示位置がずれます。x座標は
ぴったり一致するのですがy座標が7から8ポイント
ほどずれます。この二つのメソッドによる座標
と表示位置を一致させたいのですが、よい方法は
ありませんでしょうか。どうぞよろしくお願い
いたします。

public void paint(Graphics g)
{ g.drawImage(image,20,20,100,20);
Font fnt=new Font("HGゴシックM",Font.PLAIN,12);
g.setFont(fnt);

g.drawString("Hello",20,20);//座標値はおなじで               も表示位置がずれる




}

A 回答 (1件)

Graphics#drawStringのY座標は、フォントのベース位置が指定されます。



これは、gやpの〇の部分の下側です。

参考URLに図があるので確認してください。

位置を合わせるには、GraphicsオブジェクトからFontMetricsオブジェクトを取得し、フォントのアセントサイズを取得し、アセントサイズの分だけ、Y座標をずらす必要があります。

参考URL:http://java.sun.com/j2se/1.4/ja/docs/ja/api/java …
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。教えていただいた
とおりアセントサイズの分y座標にプラスしたら
drawImageと表示が一致しました。本当に助かり
ました。どうもありがとうございました。

お礼日時:2005/02/14 16:37

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