我的文字边界矩形

时间:2011-04-09 00:59:45

标签: java swing graphics java-2d

从下面的代码中,我们可以得到文本的边界矩形:

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

但在核心java教科书中,它说

  

矩形的起源是   字符串的基线和顶部   矩形的y坐标是   负

这是什么意思,为什么顶部的y坐标是负的?

对此概念的任何澄清都表示高度赞赏?

由于

1 个答案:

答案 0 :(得分:3)

在测量文本时,没有关于绘制文本的概念。所以他们有些随意,但我认为合理的决定点(0,0)位于文本的基线,第一个字符的左边。

这很好,因为如果你要说

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

它适合测量文字告诉你的方框。

鉴于文本的上升越来越消极,而下降者占据正 y 空间。