0

我不知道要显示多少文本,并且JTextAreas大小是固定的。我希望字体调整大小以适合整个JTextArea,并确保没有文本被截断。

如何做到这一点?

4

1 回答 1

1

使用FontMetrics类。它将允许您获取给定字体大小的文本的像素宽度。

示例使用:

Font font = myTextArea.getFont();
FontMetrics fontMetrics = myTextArea.getFontMetrics(font);

int width = fontMetrics.stringWidth("my awesome string");

现在,您要做的就是将上面的代码包装在一个循环中,增加或减少字体大小,直到您或多或少width等于. 完成后,只需将字体设置为.myTextArea.getWidth()myTextArea.setFont(font)

另请注意,这myTextArea.getWidth()将返回组件的宽度,包括边框、滚动条等,而不仅仅是渲染文本的区域,因此您必须首先计算渲染区域的“真实”宽度。

于 2012-06-15T19:22:24.677 回答