Java 我的文本边框

Java 我的文本边框,java,swing,graphics,java-2d,Java,Swing,Graphics,Java 2d,从以下代码中,我们可以得到文本的边框: Graphics2D twoD = (Graphics2D) g; FontRenderContext frc = twoD.getFontRenderContext(); Rectangle2D textBound = myFont.getStringBounds(myText, frc); 但在核心java教科书中,它说 矩形的原点位于 字符串的基线和顶部 矩形的y坐标为 没有 这是什么意思,为什么顶部的y坐标是负数 对这一概念的任何进一步澄清都是非

从以下代码中,我们可以得到文本的边框:

Graphics2D twoD = (Graphics2D) g;
FontRenderContext frc = twoD.getFontRenderContext();
Rectangle2D textBound = myFont.getStringBounds(myText, frc);
但在核心java教科书中,它说

矩形的原点位于 字符串的基线和顶部 矩形的y坐标为 没有

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

对这一概念的任何进一步澄清都是非常感谢的


谢谢

当您测量文本时,不知道在哪里绘制。所以他们做出了一些武断的决定,但我认为明智的决定是点(0,0)位于文本的基线,在第一个字符的左边

这很好,因为如果你说

void drawSomeText(Graphics g, String sample) {
    g.drawString(sample, 0, 0);
}
它可以放在measure text告诉您的框中


考虑到文本的上升越来越负,而下降者占据正y空间。

谢谢你的回答,我现在有了任意绘制文本的想法,但你为什么说下降者占据正x空间,不用y空间,只需在基线下方吼叫。+1 API调用这些基线相对坐标。中的图片也很好。没关系,MeBigFatGuy,非常感谢您的解释