Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Graphics2D Java中设置文本边界?_Java_Swing_Text_Graphics2d - Fatal编程技术网

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

如何在Graphics2D Java中设置文本边界?,java,swing,text,graphics2d,Java,Swing,Text,Graphics2d,在Graphics2D for Java中,有没有简单的方法为一侧的文本设置边界?例如,我有一张显示玩家等级的等级卡,随着等级的增加,我希望队伍向后扩展,而不是向前扩展。如图所示,“排名#24”与下面的一条线完美地对齐。如果这个数字变为3或4位数,我希望文本向后推,这样结尾仍然与下面的行完美对齐 有没有一种简单的方法可以用Graphics2D来实现这一点,或者我应该根据秩数的大小自己计算移位 在paintComponent()方法中使用Graphics对象的FontsMetrics类来获取字符串

在Graphics2D for Java中,有没有简单的方法为一侧的文本设置边界?例如,我有一张显示玩家等级的等级卡,随着等级的增加,我希望队伍向后扩展,而不是向前扩展。如图所示,“排名#24”与下面的一条线完美地对齐。如果这个数字变为3或4位数,我希望文本向后推,这样结尾仍然与下面的行完美对齐

有没有一种简单的方法可以用Graphics2D来实现这一点,或者我应该根据秩数的大小自己计算移位


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

然后根据宽度和所需终点计算绘制字符串的起点:

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

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

然后根据宽度和所需终点计算绘制字符串的起点:

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

有没有一种简单的方法可以用Graphics2D实现这一点据我所知,没有。或者我应该根据排名数字的大小自己计算移位量吗?是的,你应该。如果你不知道如何计算位移,请参考@camickrIs的答案。就我所知,有一种简单的方法可以用图形来计算位移2d。或者我应该根据排名数字的大小自己计算移位量吗?是的,你应该。如果您不知道如何计算班次,请参考@camickr的答案(非常感谢!)非常感谢!:)