题
我想我的JTextArea来调整自身(垂直扩展)到达最后一行(文本区域的高度可提供)时,与用户想要开始新的一行。你知道,像在的MSWord文本框中。
我有一个想法使用getLineCount()
和确定(如果有必要)的JTextArea中的新的高度。你有,或知道的更好的实现这个方法呢?
解决方案
其实,JTextArea
总是具有正确的大小,使文本的所有行都是可见的。您遇到什么可能是你包裹在JScrollPane
文本区域。只是省略了滚动窗格,使文字区域容器的直接子。
另一种解决方案是听调整滚动窗格相应文本区域和大小的事件。这样,就可以成长到一定大小,然后开始显示滚动条(例如,当某人粘贴文本到文本区的500KB)。
其他提示
我有同样的问题。从我的测试中,我不相信JTextArea的动态设置其大小。相反,它的尺寸似乎是由它的容器(对我来说一个JPanel)的限制。然而,JTextArea中确实改变基于它所包含的文本的首选大小。从文档:
java.awt.TextArea中具有用于确定最佳尺寸的两个属性的行和列。 JTextArea中使用这些属性,以指示视口的优选尺寸放置一个JScrollPane以匹配由java.awt.TextArea中提供的功能内部时。 JTextArea中有需要显示的所有文本什么的优选尺寸,所以它能够正常内一个JScrollPane的。如果行或列的值等于零,沿着该轴的优选尺寸是用于沿着相同的轴线视口优选尺寸。
我有同样的问题,我把JTextArea中成一个JScrollPane和设定的JTextArea的优选尺寸,我相信这就是问题的原因。
因此,正确的解决方案是把JTextArea中成一个JScrollPane,和不接触的JTextArea的优选大小,设置JScrollPane中的代替。
转到JTextArea中 “的属性强>” - 清单 “的 lineWrap 强>”。