Ver Mensaje Individual
  #4 (permalink)  
Antiguo 25/04/2012, 05:41
alexg88
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: JTable con columna tipo boolean

A ver, es tan sencillo como guardar la referencia al modelo antes de asignarlo.

Código Java:
Ver original
  1. public BorrarPedido() {
  2.         initComponents();
  3.         DefaultTableModel tabla = new DefaultTableModel(
  4.                 new String[]{" ", "Nº PEDIDO", "PROVEEDOR", "FECHA PEDIDO", "IMPORTE TOTAL"}, 0) {
  5.  
  6.             Class[] types = new Class[]{
  7.                 java.lang.Boolean.class, java.lang.Object.class, java.lang.Object.class, java.lang.Object.class,java.lang.Object.class
  8.             };
  9.  
  10.             public Class getColumnClass(int columnIndex) {
  11.                 return types[columnIndex];
  12.             }
  13.         };
  14.  
  15.         jTable1 = new JTable (tabla);
  16.      
  17.         int anchos[] = {1,30, 50, 60, 60};
  18.         for (int i = 0; i < jTable1.getColumnCount(); i++) {
  19.             jTable1.getColumnModel().getColumn(i).setPreferredWidth(anchos[i]);
  20.         }

Porque sino estás no estás usando el modelo de tabla que le has puesto al JTable, sino uno que no está enlazado.

Es decir, con esta sentencia:


DefaultTableModel tabla = new DefaultTableModel(........


estás creando una clase derivada de DefaultTableModel y sobrescribes los métodos que te interesan para que hagan lo que tu quieras.

Luego, asignas el modelo a la tabla (pasandosela al constructor o con setModel):

jTable1 = new JTable (tabla);

Ahora ya puedes hacer: tabla.addRow(datos);