Java 可滚动的JTextArea,可在调整大小时调整其大小

Java 可滚动的JTextArea,可在调整大小时调整其大小,java,swing,jpanel,jscrollpane,jtextarea,Java,Swing,Jpanel,Jscrollpane,Jtextarea,我有一个带有多个面板的JFrame。其中一个应该包含给定大小的JTextArea,如果文本超过该区域,该区域可以滚动,并根据帧大小调整大小 问题是,当面板是JPanel的一个实例时,无论是在窗口大小还是全屏大小,只要内容不超过当前区域,它都会占用其他组件的空间,使它们在框架中收缩(这里应该显示滚动条) 另一方面,当我使用JScrollPane时,我无法使它具有与JPanel相同的行为,保持适当的大小。事实上,它似乎适应了它的内容,因为它是空的,所以只有一些像素宽 我怎样才能实现我所追求的目标?

我有一个带有多个面板的JFrame。其中一个应该包含给定大小的JTextArea,如果文本超过该区域,该区域可以滚动,并根据帧大小调整大小

问题是,当面板是JPanel的一个实例时,无论是在窗口大小还是全屏大小,只要内容不超过当前区域,它都会占用其他组件的空间,使它们在框架中收缩(这里应该显示滚动条)

另一方面,当我使用JScrollPane时,我无法使它具有与JPanel相同的行为,保持适当的大小。事实上,它似乎适应了它的内容,因为它是空的,所以只有一些像素宽

我怎样才能实现我所追求的目标? 提前谢谢

遵循保持正确大小的代码(JPanel):


不要将文本区域添加到框架中

this.add(input); 
相反,您需要将包含文本区域的JScrollPane添加到框架中:

this.add(new JScrollPane(input)); 

这应该会给你一个答案:那么你是说JPanel给了你正确的行为?或者两者都没有?在推荐解决方案之前,我们必须弄清楚问题是什么/期望的行为是什么-应该是:
this.add(新的JScrollPane(输入))-如果这没有帮助,那么发布一篇适当的文章来说明问题。最后一条评论很有魅力!非常感谢你!如何将其标记为已回答(因为没有回答,只有注释?:D
this.add(new JScrollPane(input));