Problema al cambiar una celda de JTable

runnerea
27 de Mayo del 2004
Hola!

Tengo un problema al modificar datos de una celda dentro del JTable. En mi aplicacion, cuando pulso el boton derecho del raton sobre una celda, se visualiza un popup con ciertas opciones. Una de ellas es la de limpiar el contenido de la celda. Cuando llamo a la funcion de limpiar el contenido de la celda, hago un setValueAt pasandole el valor null, pero no se actualiza el valor de la celda.
Alguien sabe como puedo solucionar esto??

Muchisimas gracias
runnerea.

chuidiang
27 de Mayo del 2004
Prueba a ponerle "" (una cadena vacia en vez de null)

También depende un poco de qué modelo de tabla estés usando. Si es uno propio (hecho por ti) que hereda de AbstractTableModel, debes implementar el metodo setValueAt(), que esa clase lo lleva implementado pero no hace nada.

Se bueno.

runnerea
27 de Mayo del 2004
Hola!

Yo utilizo una clase que hereda del AbstractTableModel y que tiene una propiedad MtxVal [][] donde estan los valores que visualizo en la matriz. Tengo un metodo getValueAt que retorna el valor correspondiente de la posicion Row/Col en el MtxVal. Y tambien tengo el metodo setValueAt que hace un MtxVal [Row][Col] = Val.
Yo llamo al setValueAt ("", Row,Col) pero no actualiza ningun valor en el MtxVal. Este sigue manteniendo el mismo valor de antes.


Muchas gracias.
runnerea.

chuidiang
27 de Mayo del 2004
En el setValueAt(), ademas de cambiar el valor, debes avisar a los que tengan interes en este cambio (en concreto el JTable). Eso se consigue llamando al metodo fire* adecuado del AbstractTableModel.

Mas o menos esto

setValueAt (...)
{
MtxVal[Row][Col] = Val;
fireTableChanged (new TableModelEvent (this, fila, fila, columna));
}

Se bueno.