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

M J*_*Jay 2 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);
Run Code Online (Sandbox Code Playgroud)

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

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

dac*_*cwe 7

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

以下代码的屏幕截图:

截图

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);
}
Run Code Online (Sandbox Code Playgroud)