所有组件宽度都相同。我有一个JPanel(方框布局;PAGE_EXIS)。我在上面添加了一个Box.filler,它有以下规格:
最小尺寸(高度)-1
首选尺寸(高度)JPanel高度
最大尺寸(高度)JPanel高度
我添加了边界为7像素厚的JTextArea(仅在下面)。
当我输入文本时,JTextArea会展开,但还不够,几行之后文本就会越界(你再也看不到它了)。
我可以确定存在多少行文本(使用FontMetrics),并可以相应地强制setSize,但没有什么真正的改变。打印出JTextArea.getHeight()确实表明大小按照我的条件发生了变化,但从视觉上看,它保持不变。我还没有忘记验证和重新喷漆。
如何强制JTextArea调整到特定大小?
您也可以让JTextArea包装单词?:
JTextArea.setWrapStyleWord(true);
您也可以尝试使用setRows(int rows)
,然后使用revalidate()
和repaint()
设置行数
您可以将JTextArea放入JScrollPane中,以保持额外的行可见,而无需更改JTextArea在屏幕上所需的空间。
有关详细信息,请参阅有关如何使用滚动窗格的Oracle教程。