Java-textwrap with drawString()

Java-textwrap with drawString(),java,graphics,Java,Graphics,java.awt.Graphics.drawString()的常规语法包括定义字符串的X和Y坐标。我想画一个具有宽度和高度属性的字符串,用于文本换行。有没有办法为您试图绘制的字符串指定java.awt.Rectangle?我是否需要写一些东西来决定在什么地方用换行符将其删除,或者这是一种更简单的方法? 谢谢 我不认为有一种内置的方法可以做到这一点,但如果您使用以下方法获得字符串的宽度,您可以实现自己的包装: FontMetrics fontMetrics = new FontMetrics(Gr

java.awt.Graphics.drawString()
的常规语法包括定义字符串的X和Y坐标。我想画一个具有宽度和高度属性的字符串,用于文本换行。有没有办法为您试图绘制的字符串指定
java.awt.Rectangle
?我是否需要写一些东西来决定在什么地方用换行符将其删除,或者这是一种更简单的方法?
谢谢

我不认为有一种内置的方法可以做到这一点,但如果您使用以下方法获得字符串的宽度,您可以实现自己的包装:

FontMetrics fontMetrics = new FontMetrics(Graphics.getFont());
int width = fontMetrics.stringWidth("Potentially needs wrapping");

然后根据需要将消息拆分为多个字符串。

这实际上有点复杂,而且有点卷积,但本质上,您需要使用
LineBreakMeasurer
类来帮助您根据可用宽度将文本拆分为可管理的块

有关更多详细信息和示例,请参见