java - 为使用 vector 创建的 jTable 添加带有复选框的新列

标签 java swing netbeans vector jtable

我有一个 JTable,它是使用 2 个 vector 作为标题和数据创建的。 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);

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

最佳答案

覆盖getColumnClass(int col)的最简单方法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 的列索引。

另请阅读Concepts: Editors and Renderers

关于java - 为使用 vector 创建的 jTable 添加带有复选框的新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25742509/

相关文章:

java - 在一个 jlabel 中显示数组值

netbeans - 如何在 Netbeans 中获得对 Handlebars 模板的最佳支持?

c++ - 使用 root 权限进行远程调试

java - 基于一个变量显示多个jPanel

java - 安全-在java中解密 "BadPaddingException"

java - 在 jsni 函数中调用 GWT java 方法

java - JPanel从其原始位置向外动态生成

Java 应用程序架构指南

java - 如何向下转换返回的对象?

java - 需要帮助让这个简单的华氏度到摄氏度应用程序在 Java 中工作