[英]Add a new column with checkbox for a jTable created with vectors
我有一個JTable,它使用2個標頭和數據向量創建。 正在使用數據創建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);
這是我創建表的代碼。 我添加了一個名為“選擇”的新列。 只是想用復選框填充該列以選擇一個或多個行。
覆蓋TableModel
getColumnClass(int col)
方法的最簡單方法如下:
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
的列的索引。
另請閱讀概念:編輯器和渲染器
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.