繁体   English   中英

使用向量创建的jTable的复选框添加新列

[英]Add a new column with checkbox for a jTable created with vectors

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM