我有一个包含多个面板的JFrame。其中一个应包含一个给定大小的JTextArea,如果文本超出该区域,则可以滚动,并根据帧大小调整大小。
当面板是JPanel的一个实例时,只要内容不超过当前区域,它就像我想要的窗口或全屏大小一样。是的,它占用了其他组件的空间,使它们在框架中缩小(这里它应该显示滚动条)。
另一方面,当我使用JScrollPane时,我无法设法让它具有与JPanel相同的行为,保持适当的大小。实际上它似乎适应了它的内容,而且由于它是空的,它只是一些像素宽。
我如何实现我想要的目标? 提前致谢
遵循保持正确大小的代码(JPanel):
add(new JPanel(){
{
input = new JTextArea(20,20);
input.setLineWrap(true);
input.setBackground(Color.WHITE);
input.setBorder(cb);
this.setLayout(new BorderLayout());
//this.setPreferredSize(new Dimension(20,20));
this.setBorder(eb);
this.add(input);
}
});
答案 0 :(得分:0)
不要将文本区域添加到框架中。
this.add(input);
相反,您需要将包含文本区域的JScrollPane添加到框架中:
this.add(new JScrollPane(input));