Java- 使用 drawString() 进行文本换行

Java- textwrap with drawString()

java.awt.Graphics.drawString() 的正常语法包括定义字符串的 X 和 Y 坐标。我想绘制一个字符串,该字符串具有用于文本换行的宽度和高度属性。有没有办法为您要绘制的字符串指定 java.awt.Rectangle ?我是否需要写一些东西来决定自动换行应该在哪里切断,或者他们是一种更简单的方法? 谢谢!

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

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

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

这实际上有点复杂,有些令人费解,但本质上,您需要利用 LineBreakMeasurer class 来帮助您根据可用的情况将文本分解成可管理的块宽度

有关详细信息和示例,请参阅 Drawing Multiple Lines of Text