jpanel里面有太多的空格,带有gridlayout

时间:2012-12-14 12:00:29

标签: java swing jpanel

我有一个JPanel,我在里面使用这样的GridLayout:

    JPanel panel = new JPanel(new GridLayout(0, 1, 0, 0));

    JPanel p1 = new JPanel(new FlowLayout());
    JLabel label = new JLabel("SOMETHING");
    JTextField tf = new JTextField(30);

    JPanel p2 = new JPanel();

    JTextArea txt = new JTextArea(6, 30);
    JScrollPane sp = new JScrollPane(txt);

    p1.add(label);
    p1.add(tf);

    p2.add(sp);

    panel.add(p1);
    panel.add(p2);

不幸的是,JTextArea和上层元素之间的空间非常大。 我可以做些什么来启动JTextArea?

http://img20.imageshack.us/img20/1086/screenshot1412201213550.png

1 个答案:

答案 0 :(得分:7)

使用BorderLayout并将顶部面板添加到NORTH,将滚动窗格添加到CENTER

以下代码的屏幕截图:

screenshot

public static void main(String[] args) {

    JFrame frame = new JFrame("Test");

    frame.add(new JPanel(new FlowLayout()) {{
        add(new JLabel("something"));
        add(new JTextField(30));
    }}, BorderLayout.NORTH);

    frame.add(new JScrollPane(new JTextArea(6, 30)), BorderLayout.CENTER);

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.pack();
    frame.setVisible(true);
}