Hola,
Cita:
Iniciado por tambu10 ...
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,