如何动态地在jtable中设置jcheckbox

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)

Mad*_*mer 5

从你的例子和代码,这看起来不对我...

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列是"返回"?