我不知道将显示多少文本,并且JTextAreas
大小已修复。我希望字体调整大小以适应整个JTextArea
,并确保没有文本被截断。
如何实现这一目标?
答案 0 :(得分: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()
将返回组件的宽度,包括边框,滚动条等,而不仅仅是渲染文本的区域,因此您必须首先计算渲染区域的“实际”宽度