为使用矢量创建的jTable添加一个带有复选框的新列



我有一个JTable,它是用两个向量创建的头和数据。正在使用数据创建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的新列。只想在列中填充复选框来选择一行或多行。

覆盖TableModelgetColumnClass(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的列的索引。

另请阅读概念:编辑器和渲染器

相关内容

  • 没有找到相关文章

最新更新