如何自动调整JTextArea中的字体大小以填充分配的所有空间?

时间:2012-06-15 18:34:18

标签: java fonts jtextarea

我不知道将显示多少文本,并且JTextAreas大小已修复。我希望字体调整大小以适应整个JTextArea,并确保没有文本被截断。

如何实现这一目标?

1 个答案:

答案 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()将返回组件的宽度,包括边框,滚动条等,而不仅仅是渲染文本的区域,因此您必须首先计算渲染区域的“实际”宽度