2011-11-08 11 views
4

Java2DライブラリのdrawString(。。)機能を使用して、画面にグラフィックステキストを表示しています。Java:昇順の行からdrawString()を呼び出す方法

articleの図を参照してください。私の文字列をBaseLineではなくAscender Lineから描画します。簡単な言葉で、高さのb/w上昇線とベースラインを計算する方法はありますか?

答えて

2

使用フォントのFontMetricsオブジェクトを取得して、getAscent()またはgetMaxAscent()のどちらか適切な場合を使用して上昇を判断することができます。

1

レンダリング前にy位置にFontMetrics.getAscent()を追加します。

+1

は、彼が*文字列を描画する前に* * yを*にその値を追加するべきではないでしょうか。 – aioobe

+0

あなたはそうです。一定。 –

5

通常のdrawStringは、ベースラインをy - 引数と揃えます。浮動線がyと揃うように文字列を描画する場合は、y + fm.getAscent()を渡す必要があります。ここで、fmは現在のFontMetricsオブジェクトです。以下の例を参照してください。

このスクリーンショット:

enter image description here

このコードによって生成されます

FontMetrics fm = g.getFontMetrics(); 

g.setColor(Color.RED); 
g.drawLine(10, 10, 100, 10); 

g.setColor(Color.BLACK); 
g.drawString("Hello frog", 10, 10 + fm.getAscent()); 
関連する問題