簡體   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