我不知道要显示多少文本,并且JTextAreas
大小是固定的。我希望字体调整大小以适合整个JTextArea
,并确保没有文本被截断。
如何做到这一点?
使用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()
将返回组件的宽度,包括边框、滚动条等,而不仅仅是渲染文本的区域,因此您必须首先计算渲染区域的“真实”宽度。