好的,我有一个JTable,我从LinkedHashSet of Books中填充。
public static void LibToArray(){
rowData = new Object[Book.bookList.size()][5];
int i = 0;
Iterator it = Book.bookList.iterator();
while(it.hasNext()){
Book book1 = (Book)it.next();
rowData[i][0] = (Integer)book1.getId();
rowData[i][1] = book1.getTitle();
rowData[i][2] = book1.getAuthor();
rowData[i][3] = (Boolean)book1.getIsRead();
rowData[i][4] = book1.getDateStamp();
i++;
}
}
我的问题我是否希望第4个coloum将布尔状态显示为复选框,我希望在将状态保存回LinkedHashSet并刷新表后能够更改它。
对不起我是初学者,如果你能给我一些建议,我们将不胜感激。
答案 0 :(得分:8)
在表格模型中,getColumnClass()
返回Boolean.class
特定列。例如,对于AbstractTableModel
或DefaultTableModel
扩展名:
@Override
public Class<?> getColumnClass(int columnIndex) {
if (columnIndex == 3)
return Boolean.class;
return super.getColumnClass(columnIndex);
}
另外,要使单元格可编辑,请覆盖isCellEditable()
,例如:
@Override
public boolean isCellEditable(int row, int col) {
return (col == 3);
}
有关表格模型的更多详细信息,请查看How to Use Tables教程。在同一个教程中,有一个带有复选框列的表的示例。