如何在 Graphics2D Java 中设置文本边界?

How to set text boundaries in Graphics2D Java?

有什么简单的方法可以在 Java 的 Graphics2D 中为一侧的文本设置边界?例如,我有一张显示玩家等级的等级卡,随着等级# 的大小增加,我希望这条线向后扩展,而不是向前扩展。正如您在图片中看到的,“Rank #24”与其下方的一条线完美对齐。如果这个数字变成 3 或 4 位数字,我希望文本向后推,这样结尾仍然与下面的行完美对齐。

有没有一种简单的方法可以用 Graphics2D 做到这一点,或者我应该根据等级数的大小自己计算偏移量?

paintComponent() 方法中使用 Graphics 对象的 FontsMetrics class 来获取字符串的大小。

然后你根据宽度和你想要的结束点计算绘制字符串的起点:

FontMetrice fm = graphics.getFontMetrics();
int width = fm.stringWidth("Rank #1235");