所有组件宽度相同。 我有一个JPanel(框布局; PAGE_AXIS)。 我在它上面添加了一个Box.filler,它有以下规格:
最小尺寸(高度)-1
首选尺寸(身高)JPanel身高
最大化尺寸(高度)JPanel高度
我添加了边框厚度为7像素的JTextArea(仅在下方)。
当我输入文本时,JTextArea会扩展,但还不够,经过几行后文本会离开边界(你再也看不到了)。
我可以确定存在多少行文本(使用FontMetrics),我可以相应地强制使用setSize,但没有什么真正改变。打印出JTextArea.getHeight()确实显示我的条件已经改变了大小,但在视觉上它保持不变。而且我没有忘记验证和重新粉刷。
如何强制JTextArea调整大小?
答案 0 :(得分:1)
您也可以将JTextArea包装成单词?:
JTextArea.setWrapStyleWord(true);
您还可以尝试使用setRows(int rows)
然后revalidate()
和repaint()
答案 1 :(得分:0)
您可以将JTextArea放入JScrollPane以保持其他行可见,而无需更改JTextArea在屏幕上所需的空间。
有关详细信息,请参阅how to use Scroll Panes上的Oracle教程。