行中的JTable重复值我有一个JTable用自定义填充DataModel(粘贴在下面)当我调用populate()方法,it出现使用重复数据填充表-每行都一次又一次地填充相同的值。然而,在更仔细的检查(通过简单的println()对‘data’字段),数据模型没有错误-它持有正确的数据,以我预期的格式。什么给予?import java.util.ArrayList; import javax.swing.table.AbstractTableModel;@SuppressWarnings("serial")
// we don't expect this app to ever use serialized classes.
EVER.public class CollectionDataModel extends AbstractTableModel {
private ArrayList<ArrayList<String>> data;
public CollectionDataModel() {
data = new ArrayList<ArrayList<String>>();
}
@Override
public int getColumnCount() {
if(data.isEmpty()) return 0;
return data.get(0).size();
}
@Override
public int getRowCount() {
return data.size();
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
if(rowIndex > getRowCount()) return null;
if(columnIndex > getColumnCount()) return null;
return data.get(rowIndex).get(columnIndex);
}
public void populate(Collection c) {
data.clear();
for(Item i : c.getItems()) {
ArrayList<String> row = new ArrayList<String>();
for(Property p : i.getProperties().values()) {
row.add(p.toString());
}
data.add(row);
}
fireTableDataChanged();
}}
3 回答

四季花海
TA贡献1811条经验 获得超5个赞
public void populate(Collection c) { ArrayList<ArrayList<String>> data2 = new ArrayList<ArrayList<String>>(); for(Item i : c.getItems()) { ArrayList<String> row = new ArrayList<String>(); for(Property p : i.getProperties().values()) { row.add(p.toString()); } data2.add(row); } data = data2; fireTableDataChanged();}
populate
populate
c

慕雪6442864
TA贡献1812条经验 获得超5个赞
TableModel
JTable's
TableHeader
Vector<Vector<Object or String>> data; String[][] or Object[][]
ArrayList<ArrayList<String>> data;
DefaultTableModel
添加回答
举报
0/150
提交
取消