Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/142.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 自动调整JTextArea的大小_Java_Jtextarea_Autoresize - Fatal编程技术网

Java 自动调整JTextArea的大小

Java 自动调整JTextArea的大小,java,jtextarea,autoresize,Java,Jtextarea,Autoresize,当到达最后一行(文本区域的高度可以提供)并且用户想要开始一个新行时,我希望我的JTextArea调整自身大小(垂直展开)。你知道,就像MSWord中的文本框一样 我想使用getLineCount()并确定(如有必要)JTextArea的新高度。您是否有或知道更好的方法来实现这一点?实际上,JTextArea始终具有正确的大小,以便所有文本行都可见。您的体验可能是将文本区域包装在JScrollPane中。只需省略滚动窗格,并使文本区域成为容器的直接子级 另一个解决方案是监听文本区域的调整大小事件,

当到达最后一行(文本区域的高度可以提供)并且用户想要开始一个新行时,我希望我的JTextArea调整自身大小(垂直展开)。你知道,就像MSWord中的文本框一样


我想使用
getLineCount()
并确定(如有必要)JTextArea的新高度。您是否有或知道更好的方法来实现这一点?

实际上,
JTextArea
始终具有正确的大小,以便所有文本行都可见。您的体验可能是将文本区域包装在
JScrollPane
中。只需省略滚动窗格,并使文本区域成为容器的直接子级


另一个解决方案是监听文本区域的调整大小事件,并相应调整滚动窗格的大小。这样,您可以增大到一定的大小,然后开始显示滚动条(例如,当有人将500KB的文本粘贴到文本区域时)。

我也遇到了同样的问题。根据我的测试,我不相信JTextArea会动态设置其大小。相反,它的大小似乎受到它的容器(在我的例子中是一个JPanel)的限制。但是,JTextArea确实会根据其包含的文本更改其首选大小。从文件中:

TextArea有两个属性行和列,用于确定首选大小。JTextArea使用这些属性来指示当放置在JScrollPane中时视口的首选大小,以匹配java.awt.TextArea提供的功能。JTextArea具有显示所有文本所需的首选大小,以便它在JScrollPane中正常工作。如果行或列的值等于零,则沿该轴的首选大小将用于沿同一轴的视口首选大小


我也遇到了同样的问题,我将JTextArea放入一个JScrollPane并设置了JTextArea的首选大小,我相信这就是问题的原因


因此,正确的解决方案是将JTextArea放入JScrollPane中,不要触摸JTextArea的首选大小,而是设置JScrollPane。

转到JTextArea“属性””-检查表“换行”

我只是将JTextArea添加到JPanel中。这和设置尺寸有关吗?但是如果我没有设置大小,那么它就不会显示。你只需要设置JPanel的大小,这样文本区域就可以增长。文本区域应自动调整以适应内部文本的大小。嗯,它不起作用。顺便说一句,我切换到使用JTextPane,但扩展continueshmm仍然存在问题,我认为这是文本设置的问题。我使用setText(),但可能应该使用insertString()。我试试看