对于我正在开发的塔防游戏,我希望在精灵中加入塔防的文本。然而,这个精灵中的文本需要根据它所受到的伤害而改变。我有点迂腐,需要精确的X和Y来绘制字符串,以便它在图像中居中。
我如何找到字符串的高度,以便我可以相应地调整绘制字符串的Y元素?
g.setColor(new Color(Integer.parseInt(tObj[0].toString())));
g.drawString(String.format("Wave: %d", getWave()), 5, 460);
设一个二维矩形,其左上角位于point.x,point.y
,宽度为width
,高度为height
。当我需要在矩形的中心画一个字符串时,我使用了这个
String text = "Centered Text";
FontMetrics fontMetrics = graphics.getFontMetrics();
Rectangle2D rect = fontMetrics.getStringBounds(text, graphics);
int x = point.x + (width - (int) rect.getWidth()) / 2;
int y = point.y + (height - (int) rect.getHeight()) / 2 + fontMetrics.getAscent();
graphics.drawString(text, x, y);