2012-08-27 210 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