2012-08-27 215 views
1

所有组件宽度都相同。 我有一个JPanel(盒子布局; PAGE_AXIS)。 我已经在其上加入一个Box.filler其具有下列规格:JTextArea自动调整高度

最小尺寸(高度)-1

优选尺寸(高度)的JPanel高度

Maximim尺寸(高度)的JPanel高度

我添加了边界7像素厚的JTextArea(仅在下面)。

当我键入文本时,JTextArea会展开,但不够,并且在几行后文本会出现边界(您再也看不到它了)。

我可以确定有多少行文本存在(使用FontMetrics),并且我可以相应地强制setSize,但没有任何改变。打印出来的JTextArea.getHeight()确实表明大小已经改变了我的条件,但在视觉上它保持不变。我还没有忘记验证和重新绘制。

我该如何强制JTextArea调整到一定的大小?

+0

1)你的问题是什么? 2)为了更快地获得更好的帮助,请发布[SSCCE](http://sscce.org/)。 3)您可能会考虑使用多行(HTML格式)标签。 –

回答

1

你可以或者只是把JTextArea中总结的话?:

JTextArea.setWrapStyleWord(true); 

你也可以尝试设置使用setRows(int rows)行的金额,然后revalidate()repaint()

+1

卡尔洛夫斯基写的是关于线条而不是列的文章,这些文章都是关于边界的。 –

+0

@StefanNeubert true查看edietd的帖子 –

0

你可以把JTextArea中到一个JScrollPane在不改变JTextArea在屏幕上所需的空间的情况下保持可见的额外行。

有关更多信息,请参阅Oracle教程how to use Scroll Panes