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

时间:2015-10-15 14:47:50

标签: java swing jpanel jscrollpane jtextarea

我有一个包含多个面板的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);
            }
        });

1 个答案:

答案 0 :(得分:0)

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

this.add(input); 

相反,您需要将包含文本区域的JScrollPane添加到框架中:

this.add(new JScrollPane(input));