动态调整textarea的大小以适应内容

时间:2012-03-18 11:13:03

标签: java swing

这是我使用netbeans放入程序的textarea。第一张图显示了运行程序时textarea的样子。第二个图像是在我按下一个按钮后显示textarea,该按钮在文本区域添加了大约50个“Hello world”字符串 - 只显示前6个。我需要textarea的高度来动态增加以适应所有这些字符串。有谁知道怎么做?

编辑:我不想要滚动条,所以使用JScrollPane不是一个选项。

enter image description here

enter image description here

3 个答案:

答案 0 :(得分:3)

我不会将JTextArea用于除原型之外的任何事情。它具有记事本的苦涩功能。但这取决于你。

我会使用JEditorPane或JTextPane。我知道你不能根据字符大小调整大小,但这是最好的。对于自动换行,你可以做setContentType(“text / html”);并将文本包装在<'p><'/ p>中标签

(注意你仍然使用JScrollPane进行滚动。事实上,滚动窗格适用于任何组件)

查看差异:http://docs.oracle.com/javase/tutorial/uiswing/components/editorpane.html

答案 1 :(得分:2)

试试这个http://java-sl.com/tip_text_height_measuring.html

我没有尝试使用JTextArea但是假设它应该可以工作

答案 2 :(得分:1)

在JScrollPane中包含JTextArea

JTextArea textArea = new JTextArea();
JScrollPane scrollArea = new JScrollPane(textArea);

这将根据是否需要滚动来动态更改文本区域