添加一个新列,其中包含使用矢量创建的jTable的复选框

时间:2014-09-09 10:37:47

标签: java swing netbeans vector jtable

我有一个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);

这是我创建表格的代码。我添加了一个名为Select的新列。只想用复选框填充列以选择一行或多行。

1 个答案:

答案 0 :(得分:2)

覆盖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 - {{1}}列的索引。

另请阅读getColumnClass(int col)