我希望我的JTextArea在达到最后一行(文本区域高度可以提供的最后一行)并且用户想要开始新行时,能够自动调整大小(垂直扩展)。就像MSWord中的文本框一样。
我有一个想法,使用getLineCount()
来确定JTextArea的新高度(如果需要)。您是否有更好的实现方法?
我希望我的JTextArea在达到最后一行(文本区域高度可以提供的最后一行)并且用户想要开始新行时,能够自动调整大小(垂直扩展)。就像MSWord中的文本框一样。
我有一个想法,使用getLineCount()
来确定JTextArea的新高度(如果需要)。您是否有更好的实现方法?
JTextArea
总是具有正确的大小,以便所有文本行都可见。您所遇到的可能是将文本区域包装在 JScrollPane
中。只需省略滚动窗格并使文本区域成为容器的直接子级即可。java.awt.TextArea有两个属性行和列,用于确定首选大小。当将JTextArea放置在JScrollPane中以匹配java.awt.TextArea提供的功能时,JTextArea使用这些属性来指示视口的首选大小。JTextArea的首选大小是显示所有文本所需的大小,因此它在JScrollPane内部正常工作。如果行或列的值等于零,则沿着该轴的首选大小用于沿着相同轴的视口首选大小。
请前往JTextArea的“属性” - “lineWrap”复选框。
我曾经遇到过同样的问题,我将JTextArea放入了JScrollPane中,并设置了JTextArea的首选大小,我相信这就是问题的原因。
因此,正确的解决方案是将JTextArea放入JScrollPane中,不要触碰JTextArea的首选大小,而是设置JScrollPane的首选大小。