Ver Mensaje Individual
  #8 (permalink)  
Antiguo 02/02/2010, 23:27
Avatar de HackmanC
HackmanC
 
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 10 meses
Puntos: 260
Sonrisa Respuesta: Checkbox en JTable

Hola,

Cita:
Iniciado por tambu10 Ver Mensaje
...
javax.swing.JTable$BooleanRenderer.getTableCellRendererComponent(JTable.java :3401)
...
Posiblemente ... los datos deben ser boolean.

Lo que no has mostrado es la forma en que llenas la tabla, y si tienes tu propio TableModel. Si llenas los datos con "Integer", "String", "Integer" ... la primera columna está amarrada a un Integer (O puede ser otro tipo de datos), agrega un dato al principio que sea Boolean y especifíca la clase en el TableModel.

Por ejemplo:

Código:
public class Main {

    public static void main(String[] args) {
        new Main();
    }

    public Main() {
        new JFrame().setVisible(true);
    }

    private class JFrame extends javax.swing.JFrame {
        private javax.swing.JScrollPane jScrollPane1;
        private javax.swing.JTable jTable1;
        public JFrame() {
            jScrollPane1 = new javax.swing.JScrollPane();
            jTable1 = new javax.swing.JTable();
            setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
            jTable1.setModel(new javax.swing.table.DefaultTableModel(
                    new Object[][]{
                        {false, 1, null, null},
                        {false, 2, null, null},
                        {false, 3, null, null},
                        {false, 4, null, null}
                    },
                    new String[]{
                        "Title 1", "Title 2", "Title 3", "Title 4"
                    }) {
                Class[] types = new Class[]{
                    java.lang.Boolean.class, java.lang.Object.class, java.lang.Object.class, java.lang.Object.class
                };
                @Override
                public Class getColumnClass(int columnIndex) {
                    return types[columnIndex];
                }
            });
            jScrollPane1.setViewportView(jTable1);
            getContentPane().add(jScrollPane1);
            pack();
        }
    }
}
Así no tienes que cambiar el Render ni el Editor y te ahorras este problema.

(No es necesario poner 'false' en la primera columna como mencioné anteriormente en el otro post, puede ser null, con redefinir el método 'getColumnClass' es más que suficiente en el AbstractTableModel o DefaultTableModel)

Saludos,