修复JTextArea的高度

时间:2013-10-02 16:40:16

标签: java swing layout layout-manager jtextarea

我仍然没有创建Java GUI的经验,而且我遇到了JTextArea的问题。我想修复它的高度(列数),但似乎总是填满可用空间。我已经在互联网上看到你应该将它放在JScrollPane中,我已经完成了,但同样的事情发生了。

这是一些示例代码:

public class TestWindow extends JFrame {

    public TestWindow() {
        super();
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(300, 200);
        setLocationRelativeTo(null);

        add(new JScrollPane(new JTextArea(5, 10)));

        setVisible(true);
    }

}

使用此代码,JTextArea填充整个窗口。我能以任何方式将其修复为特定数量的行和列吗?它可能与布局管理器有关吗?

3 个答案:

答案 0 :(得分:2)

您可以在符合首选尺寸高度的BorderLayout.PAGE_START位置添加该组件

add(new JScrollPane(new JTextArea(5, 10)), BorderLayout.PAGE_START);

答案 1 :(得分:1)

是的,默认布局是BorderLayout,它扩展了所有内容以适应整个区域,你必须设置一个新的布局,我建议使用GridBagLayout来大范围控制尺寸,或者我最常用的是BoxLayout

答案 2 :(得分:0)

在这种情况下(没有其他布局管理器),告诉列数不会控制组件的高度。您需要使用setSize()手动设置它的大小。