JTextArea自动调整高度

时间:2012-08-27 12:55:08

标签: java swing jtextarea layout-manager boxlayout

所有组件宽度相同。 我有一个JPanel(框布局; PAGE_AXIS)。 我在它上面添加了一个Box.filler,它有以下规格:

最小尺寸(高度)-1

首选尺寸(身高)JPanel身高

最大化尺寸(高度)JPanel高度

我添加了边框厚度为7像素的JTextArea(仅在下方)。

当我输入文本时,JTextArea会扩展,但还不够,经过几行后文本会离开边界(你再也看不到了)。

我可以确定存在多少行文本(使用FontMetrics),我可以相应地强制使用setSize,但没有什么真正改变。打印出JTextArea.getHeight()确实显示我的条件已经改变了大小,但在视觉上它保持不变。而且我没有忘记验证和重新粉刷。

如何强制JTextArea调整大小?

2 个答案:

答案 0 :(得分:1)

您也可以将JTextArea包装成单词?:

JTextArea.setWrapStyleWord(true);

您还可以尝试使用setRows(int rows)然后revalidate()repaint()

设置行数

答案 1 :(得分:0)

您可以将JTextArea放入JScrollPane以保持其他行可见,而无需更改JTextArea在屏幕上所需的空间。

有关详细信息,请参阅how to use Scroll Panes上的Oracle教程。