Foros del Web » Programación para mayores de 30 ;) » Java »

Problema ordenacion Jtable

Estas en el tema de Problema ordenacion Jtable en el foro de Java en Foros del Web. Hola a todos, Tengo un problema con un Jtable. El Jtable tiene un modelo que extiende de la clase AbstractTableModel y tiene además un TableRowSorter ...
  #1 (permalink)  
Antiguo 05/08/2011, 12:51
 
Fecha de Ingreso: enero-2009
Mensajes: 19
Antigüedad: 15 años, 3 meses
Puntos: 1
Pregunta Problema ordenacion Jtable

Hola a todos,


Tengo un problema con un Jtable. El Jtable tiene un modelo que extiende de la clase AbstractTableModel y tiene además un TableRowSorter para ordenar las columnas a gusto del usuario.

Voy a poner un ejemplo del problema:

El usuario rellena unos datos de busqueda, le da al botón buscar y los datos son cargados en la JTable (imaginemos 10 filas). El usuario establece que quiere ordenar por la columna de fecha.

Ahora redefine la búsqueda, y esta nueva busqueda devuelve 4 filas que sustituyen a las 10 filas anteriores. En este momento se arroja una ArrayIndexOutOfBoundsException.

Si como resultado de la segunda busqueda se obtienen más filas que en la primera no ocurre el error. Y solo ocurre si se estableció ordenación en alguna columna.

Este es el metodo que utilizo para rellenar el modelo. Se ejecutaria cada vez que se quieren meter los datos en la tabla. En el ejemplo dado, se ejecutaria primero con las 10 filas (1o elementos en la lista pasada por parámetro) y luego con las 4 filas.


public boolean crearDatos(List lista) {

try {
this.datos = new Vector>();

if (lista != null && lista.size() > 0) {
for (int i = 0; i < lista.size(); i++) {
Vector vector = new Vector();
/* CODIGO OMITIDO DONDE SE RELLENA EL VECTOR */
modeloDatos.addRow(vector);
}
}
if (datos != null && datos.size() > 0) {
this.fireTableRowsInserted(0,this.datos.size()-1);
}
updateUI();
} catch (Exception e) {
LogController.getLog().error( "Error en crearDatos :" +e.getMessage());
return false;
}
return true;
}

Lo que creo que ocurre es que aunque cree las 4 nuevas filas, el rowsorter no se actualiza con el cambio y cree que sigue teniendo 10. ¿Qué debería hacer?

Un saludo y gracias de antemano
  #2 (permalink)  
Antiguo 06/08/2011, 16:30
 
Fecha de Ingreso: mayo-2011
Mensajes: 44
Antigüedad: 12 años, 11 meses
Puntos: 2
Respuesta: Problema ordenacion Jtable

bueno tengo dos preguntas para ver si puedo ayudarte

1.cuando haces cualquier actualizacion de la tabla esta se ve reflejada de manera grafica
EJ: si en la primera busqueda te da 10 filas y la segunda 4 ¿esto se refleja en el JFrame? o viceversa

2. creaste nuevas clases de AbstractTableModel o TableRowSorter?
  #3 (permalink)  
Antiguo 08/08/2011, 04:36
 
Fecha de Ingreso: enero-2009
Mensajes: 19
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: Problema ordenacion Jtable

Hola Josefo,

Gracias por tu respuesta.

1. La primera búsqueda si se ve en pantalla. La segunda, al producir la excepción, deja la tabla en un estado inconsistente y la tabla se va a la "porra".

2. Mi tabla, extiende de JTable, tiene además una clase interna que exitiende de AbstractTableModel y que contiene el modelo. El TableRowSorter que tiene la tabla es la propia de java, no he hecho una nueva extendiendo de ésta.

Un saludo

Etiquetas: jtable, ordenacion
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:15.