使panel中的行紧密排列

来源:互联网 发布:ds cloud windows 编辑:程序博客网 时间:2024/05/01 14:41
JPanel dataPanel = new JPanel();dataPanel.setLayout(new GridLayout(dataFields.size(),1,0,0));//0,0表示行和列的间距for(Iterator<DataField> iterator = dataFields.iterator();iterator.hasNext();){DataField data = iterator.next();JLabel label = new JLabel(data.getName());JTextField textField = new JTextField(data.getValue(),20);textField.setEditable(false);JPanel rowPanel = new JPanel();rowPanel.setLayout(new GridLayout(1,1,0,0));//0,0表示行和列的间距,如果用默认的FlowLayout,则即使上面写了0,0也会导致行间有间距rowPanel.add(label);rowPanel.add(textField);rowPanel.setPreferredSize(new Dimension(300,20));//设置每个panel的大小dataPanel.add(rowPanel);}


放在布局中的组件,组件调用setSize()无效,只有调用setPreferredSize()
rowPanel.setPreferredSize(new Dimension(300,20));