2

我有一个 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

4

1 回答 1

6

使用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);
}
于 2012-12-14T12:06:36.940 回答