我想我的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 ”。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top