jCheckBox no jTable

Tentei tentei e o maximo que consegui é que apareca false ou true e quando eu clico na coluna aperece o checkbox selecionado ou em branco e logo apos o click ele volta false ou true, se alguem puder dar uma olhada no codigo fico grato.

private static void displayDatabaseRecords(ResultSet rS) throws SQLException {
        boolean moreRecords = rS.next();
        if (!moreRecords) {
        }
        try {
            ResultSetMetaData rs = rS.getMetaData();
            gridColumns.addElement("");
            for (int i = 1; i <= rs.getColumnCount(); ++i)
                gridColumns.addElement(rs.getColumnName(i));
            do {
                gridRows.addElement(getNextRow(rS,rs));
            } while (rS.next());
            jTable1 = new JTable(gridRows, gridColumns) {
                public Component prepareRenderer(TableCellRenderer renderer,
                int rowIndex, int vColIndex) {
                    Component c = super.prepareRenderer(renderer, rowIndex, vColIndex);
                    if (rowIndex % 2 == 0 && !isCellSelected(rowIndex, vColIndex)) {
                        c.setBackground(Color.lightGray);
                    } else {
                        c.setBackground(getBackground());
                    }
                    return c;
                }
            };
            JCheckBox jCheckBox1 = new JCheckBox();
            jTable1.setDefaultEditor(Object.class, new DefaultCellEditor(jCheckBox1)); 
            if (jComboBox2.getSelectedItem().equals("Apartamento")) {
                int vColIndex = 0;
                jTable1.getColumnModel().getColumn(vColIndex).setHeaderValue("CODIGO");
                jTable1.getColumnModel().getColumn(vColIndex).setMaxWidth(60);
                vColIndex = 1;
                jTable1.getColumnModel().getColumn(vColIndex).setHeaderValue("EDIFICIO");
                vColIndex = 2;
                jTable1.getColumnModel().getColumn(vColIndex).setHeaderValue("ENDEREÇO");
                vColIndex = 3;
                jTable1.getColumnModel().getColumn(vColIndex).setHeaderValue("NUMERO");
                jTable1.getColumnModel().getColumn(vColIndex).setMaxWidth(60);
                vColIndex = 4;
                jTable1.getColumnModel().getColumn(vColIndex).setHeaderValue("APTO");
                jTable1.getColumnModel().getColumn(vColIndex).setMaxWidth(60);
                vColIndex = 5;
                jTable1.getColumnModel().getColumn(vColIndex).setHeaderValue("SELEÇÃO");
                jTable1.getColumnModel().getColumn(vColIndex).setMaxWidth(60);
                //jTable1.getColumnModel().getColumn(vColIndex).setCellEditor(new DefaultCellEditor(new JCheckBox()));
                //JCheckBox jCheckBox1 = new JCheckBox();
                //jTable1.setDefaultEditor(Object.class, new DefaultCellEditor(jCheckBox1)); 
            }
            else if (jComboBox2.getSelectedItem().equals("Residências")) {
                int vColIndex = 0;
                jTable1.getColumnModel().getColumn(vColIndex).setHeaderValue("CODIGO");
                jTable1.getColumnModel().getColumn(vColIndex).setMaxWidth(80);
                vColIndex = 1;
                jTable1.getColumnModel().getColumn(vColIndex).setHeaderValue("ENDEREÇO");
                vColIndex = 2;
                jTable1.getColumnModel().getColumn(vColIndex).setHeaderValue("NUMERO");
                jTable1.getColumnModel().getColumn(vColIndex).setMaxWidth(80);
                vColIndex = 3;
                jTable1.getColumnModel().getColumn(vColIndex).setHeaderValue("BAIRRO");
                vColIndex = 4;
                jTable1.getColumnModel().getColumn(vColIndex).setHeaderValue("CIDADE");
            }
            else if (jComboBox2.getSelectedItem().equals("Casas Comerciais")) {
                int vColIndex = 0;
                jTable1.getColumnModel().getColumn(vColIndex).setHeaderValue("CODIGO");
                jTable1.getColumnModel().getColumn(vColIndex).setMaxWidth(80);
                vColIndex = 1;
                jTable1.getColumnModel().getColumn(vColIndex).setHeaderValue("ENDEREÇO");
                vColIndex = 2;
                jTable1.getColumnModel().getColumn(vColIndex).setHeaderValue("NUMERO");
                jTable1.getColumnModel().getColumn(vColIndex).setMaxWidth(80);
                vColIndex = 3;
                jTable1.getColumnModel().getColumn(vColIndex).setHeaderValue("BAIRRO");
                vColIndex = 4;
                jTable1.getColumnModel().getColumn(vColIndex).setHeaderValue("CIDADE");
            }
            else if (jComboBox2.getSelectedItem().equals("Salas")) {
                int vColIndex = 0;
                jTable1.getColumnModel().getColumn(vColIndex).setHeaderValue("CODIGO");
                jTable1.getColumnModel().getColumn(vColIndex).setMaxWidth(80);
                vColIndex = 1;
                jTable1.getColumnModel().getColumn(vColIndex).setHeaderValue("EDIFICIO");
                vColIndex = 2;
                jTable1.getColumnModel().getColumn(vColIndex).setHeaderValue("ENDEREÇO");
                vColIndex = 3;
                jTable1.getColumnModel().getColumn(vColIndex).setHeaderValue("NUMERO");
                jTable1.getColumnModel().getColumn(vColIndex).setMaxWidth(80);
                vColIndex = 4;
                jTable1.getColumnModel().getColumn(vColIndex).setHeaderValue("SALA");
                jTable1.getColumnModel().getColumn(vColIndex).setMaxWidth(80);
            }
            else if (jComboBox2.getSelectedItem().equals("Terrenos")) {
                int vColIndex = 0;
                jTable1.getColumnModel().getColumn(vColIndex).setHeaderValue("CODIGO");
                jTable1.getColumnModel().getColumn(vColIndex).setMaxWidth(80);
                vColIndex = 1;
                jTable1.getColumnModel().getColumn(vColIndex).setHeaderValue("ENDEREÇO");
                vColIndex = 2;
                jTable1.getColumnModel().getColumn(vColIndex).setHeaderValue("NUMERO");
                jTable1.getColumnModel().getColumn(vColIndex).setMaxWidth(80);
                vColIndex = 3;
                jTable1.getColumnModel().getColumn(vColIndex).setHeaderValue("BAIRRO");
                vColIndex = 4;
                jTable1.getColumnModel().getColumn(vColIndex).setHeaderValue("CIDADE");
            }
            else if (jComboBox2.getSelectedItem().equals("Chacaras, Sitios e Fazendas")) {
                int vColIndex = 0;
                jTable1.getColumnModel().getColumn(vColIndex).setHeaderValue("CODIGO");
                jTable1.getColumnModel().getColumn(vColIndex).setMaxWidth(80);
                vColIndex = 1;
                jTable1.getColumnModel().getColumn(vColIndex).setHeaderValue("ENDEREÇO");
                vColIndex = 2;
                jTable1.getColumnModel().getColumn(vColIndex).setHeaderValue("NUMERO");
                jTable1.getColumnModel().getColumn(vColIndex).setMaxWidth(80);
                vColIndex = 3;
                jTable1.getColumnModel().getColumn(vColIndex).setHeaderValue("BAIRRO");
                vColIndex = 4;
                jTable1.getColumnModel().getColumn(vColIndex).setHeaderValue("CIDADE");
            }
            else if (jComboBox2.getSelectedItem().equals("Imóveis Comerciais")) {
                int vColIndex = 0;
                jTable1.getColumnModel().getColumn(vColIndex).setHeaderValue("CODIGO");
                jTable1.getColumnModel().getColumn(vColIndex).setMaxWidth(80);
                vColIndex = 1;
                jTable1.getColumnModel().getColumn(vColIndex).setHeaderValue("ENDEREÇO");
                vColIndex = 2;
                jTable1.getColumnModel().getColumn(vColIndex).setHeaderValue("NUMERO");
                jTable1.getColumnModel().getColumn(vColIndex).setMaxWidth(80);
                vColIndex = 3;
                jTable1.getColumnModel().getColumn(vColIndex).setHeaderValue("BAIRRO");
                vColIndex = 4;
                jTable1.getColumnModel().getColumn(vColIndex).setHeaderValue("CIDADE");
            }
            else if (jComboBox2.getSelectedItem().equals("Barracões e Armazens")) {
                int vColIndex = 0;
                jTable1.getColumnModel().getColumn(vColIndex).setHeaderValue("CODIGO");
                jTable1.getColumnModel().getColumn(vColIndex).setMaxWidth(80);
                vColIndex = 1;
                jTable1.getColumnModel().getColumn(vColIndex).setHeaderValue("ENDEREÇO");
                vColIndex = 2;
                jTable1.getColumnModel().getColumn(vColIndex).setHeaderValue("NUMERO");
                jTable1.getColumnModel().getColumn(vColIndex).setMaxWidth(80);
                vColIndex = 3;
                jTable1.getColumnModel().getColumn(vColIndex).setHeaderValue("BAIRRO");
                vColIndex = 4;
                jTable1.getColumnModel().getColumn(vColIndex).setHeaderValue("CIDADE");
            }
            jTable1.setOpaque(true);
            jTable1.setBackground(new java.awt.Color(255, 255, 255));
            JScrollPane scroller = new JScrollPane(jTable1);
            scroller.setBackground(new java.awt.Color(255, 255, 255));
            scroller.setOpaque(true);
            jPanel1.setBackground(new java.awt.Color(255, 255, 255));
            jPanel1.setOpaque(true);
            jTable1.setRowHeight(20);
            jTable1.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
            jTable1.setRowSelectionAllowed(true);
            jPanel1.add(scroller);
            scroller.revalidate();
            jTable1.revalidate();
            //validate();
        }
        catch(SQLException sqlx) {
            sqlx.printStackTrace();
        }
    }
    
    private static Vector getNextRow(ResultSet rS, ResultSetMetaData rs) throws SQLException {
        Vector currentRow = new Vector();
        for (int i = 1; i <= rs.getColumnCount(); ++i)
            if (rs.getColumnType(i) == Types.VARCHAR) {
                currentRow.addElement(rS.getString(i));
            }
            else if (rs.getColumnType(i) == Types.INTEGER) {
                currentRow.addElement(rS.getString(i));
            }
            else if (rs.getColumnType(i) == Types.DATE) {
                currentRow.addElement(rS.getString(i));
            }
            else if (rs.getColumnType(i) == Types.BOOLEAN) {
                currentRow.addElement(rS.getString(i));
            }
            currentRow.addElement(new Boolean(false));
        return currentRow;
    }

Um Abraço

Renato

Fala brother, blz?Vc tem que criar um renderer para sua coluna que vai conter o JCheckBox.Bom isso vai te ajudar:

http://www-106.ibm.com/developerworks/java/library/j-jtable/

A Paz!!