我有一个 JTable,它是使用 2 个 vector 作为标题和数据创建的。 JTable 正在使用数据创建。现在我想在表格末尾添加一个新列来选择一些特定的行。
//set header
Vector header = new Vector();
for(int i=1; i<=rsmd.getColumnCount(); i++) {
header.addElement(rsmd.getColumnLabel(i));
}
header.addElement("Select");
//set data
Vector data = new Vector();
while(rs.next()) {
Vector row = new Vector();
for(int i=1; i<=rsmd.getColumnCount(); i++) {
row.addElement(rs.getObject(i));
}
row.addElement(false);
data.addElement(row);
}
DefaultTableModel dtm = new DefaultTableModel(data, header);
tbl.setModel(dtm);
这是我创建表的代码。我添加了一个名为“选择”的新列。只是想用复选框填充该列以选择一行或多行。
最佳答案
覆盖getColumnClass(int col)
的最简单方法TableModel
的方法如下:
DefaultTableModel dtm = new DefaultTableModel(data, header){
@Override
public Class<?> getColumnClass(int col) {
if(col == CHECK_BOX_COLUMN_INDEX){
return Boolean.class;
}
return super.getColumnClass(col);
}
};
其中 CHECK_BOX_COLUMN_INDEX
- 具有 JCheckBox
的列索引。
关于java - 为使用 vector 创建的 jTable 添加带有复选框的新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25742509/