如何在Java中居中Graphics.drawString()?
我目前正在为我的菜单系统上 的Java
游戏,我不知道如何可以从中心的文本Graphics.drawString()
,因此,如果我想画一个文本,其中心点是在X: 50
和Y:
50,和文字30
像素宽,10
像素高,文字将以X: 35
和开头Y: 45
。
可以在绘制文字之前确定其宽度吗?
这样一来,数学就很容易了。
我也想知道是否可以获取文本的高度,以便我也可以垂直居中。
任何帮助表示赞赏!
回答:
我用这个问题的答案。
我使用的代码如下所示:
/** * Draw a String centered in the middle of a Rectangle.
*
* @param g The Graphics instance.
* @param text The String to draw.
* @param rect The Rectangle to center the text in.
*/
public void drawCenteredString(Graphics g, String text, Rectangle rect, Font font) {
// Get the FontMetrics
FontMetrics metrics = g.getFontMetrics(font);
// Determine the X coordinate for the text
int x = rect.x + (rect.width - metrics.stringWidth(text)) / 2;
// Determine the Y coordinate for the text (note we add the ascent, as in java 2d 0 is top of the screen)
int y = rect.y + ((rect.height - metrics.getHeight()) / 2) + metrics.getAscent();
// Set the font
g.setFont(font);
// Draw the String
g.drawString(text, x, y);
}
以上是 如何在Java中居中Graphics.drawString()? 的全部内容, 来源链接: utcz.com/qa/424643.html