Pra*_*A R 0 java swing jtable jcheckbox defaulttablemodel
在此图片中,返回表头值显示在复选框中.
这里jtable来自数据库的值
我尝试了但是因为boolean值强制转换为字符串而发生了classcastexception
我不知道为什么会发生错误

这是我的代码
static Object[][] data;
String[] colName = {"Book", "Member", "Issue Date", "Return Date ",
"Remark","Return" };
List<Issue>issues=ServiceFactory.getIssueServiceImpl().findAllIssue();
data=new Object[issues.size()][6];
for(Issue issue:issues){
data[i][0]=issue.getMemberId().getName();
data[i][1]=issue.getBookId().getName();
data[i][2]=issue.getIssueDate();
data[i][3]=issue.getReturnDate();
data[i][4]=issue.getRemark();
data[i][5]=issue.getStatus();
i++;
}
Run Code Online (Sandbox Code Playgroud)
这里发生例外
DefaultTableModel dtm = new DefaultTableModel(data, colName);{
public Class getColumnClass(int c) {
switch (c) {
case 0: return Boolean.class;
default: return String.class;
}
} };
retunTable = new JTable();
retunTable.setModel(dtm);
retunTable.getTableHeader().setReorderingAllowed(false);
return retunTable;
Run Code Online (Sandbox Code Playgroud)
如果你知道这个,请在这里分享答案......
编辑
DefaultTableModel dtm = new DefaultTableModel(data, colName);{
public Class getColumnClass(int c) {
switch (c) {
case 0: return Boolean.class;
default: return String.class;
}
} };
dtm .addRow(data);
retunTable = new JTable();
retunTable.setModel(dtm);
retunTable.getTableHeader().setReorderingAllowed(false);
return retunTable;
Run Code Online (Sandbox Code Playgroud)
从你的例子和代码,这看起来不对我...
DefaultTableModel dtm = new DefaultTableModel(data, colName);{
public Class getColumnClass(int c) {
switch (c) {
case 0: return Boolean.class;
default: return String.class;
}
}
};
Run Code Online (Sandbox Code Playgroud)
不是列0"书"......或者更重要的是,issue.getMemberId().getName()
不应该......
DefaultTableModel dtm = new DefaultTableModel(data, colName);{
public Class getColumnClass(int c) {
return c == 5 ? Boolean.class : String.class
}
};
Run Code Online (Sandbox Code Playgroud)
第5列是"返回"?