我有一个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
答案 0 :(得分: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);
}