2011-04-09 60 views
1

從下面的代碼,我們可以得到我們的文本的邊框:我的文字邊框

Graphics2D twoD = (Graphics2D) g; 
FontRenderContext frc = twoD.getFontRenderContext(); 
Rectangle2D textBound = myFont.getStringBounds(myText, frc); 

但在Java核心教材,它說,

矩形的原點在 字符串的基線,以及頂部 矩形的y座標爲 爲負數。

這是什麼意思,爲什麼頂部y座標是負值?

對這個概念的任何更多的澄清是高度讚賞?

謝謝

回答

3

當您測量文本時,沒有您正在繪製它的位置的概念。所以他們有點武斷,但我想明智的決定,點(0,0)是在文本的基線,在第一個字符的左側。

這是一件好事,因爲如果你說

void drawSomeText(Graphics g, String sample) { 
    g.drawString(sample, 0, 0); 
} 

它會適合衡量文字告訴你的盒子。

鑑於文字的上升趨勢越來越消極,而下行者佔據了積極的空間。

+0

感謝您的回覆,我得到了現在任意繪製文本的想法,但爲什麼您要說下行者佔據正x空間,而不是y空間恰好在基線之下。 – skystar7 2011-04-09 01:18:06

+0

對不起,錯字會修復。 – MeBigFatGuy 2011-04-09 02:11:34

+0

+1 API [note](http://download.oracle.com/javase/6/docs/api/java/awt/Font.html)調用這些_baseline相對座標_。 – trashgod 2011-04-09 02:12:19