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

Eliminar rows contengan texto determinado en defaultTableModel

Estas en el tema de Eliminar rows contengan texto determinado en defaultTableModel en el foro de Java en Foros del Web. Buen dia , tengo un problema y no se como solucionarlo , al momento de seleccionar un registro en una tabla que contiene un numero ...
  #1 (permalink)  
Antiguo 24/04/2013, 10:48
Avatar de fahs82  
Fecha de Ingreso: abril-2012
Ubicación: guadalajara
Mensajes: 139
Antigüedad: 12 años, 7 meses
Puntos: 12
Pregunta Eliminar rows contengan texto determinado en defaultTableModel

Buen dia , tengo un problema y no se como solucionarlo , al momento de seleccionar un registro en una tabla que contiene un numero de id de articulo y presionar un botón debo eliminar los registros que coincidan con ese id que esta en otro modelo de tabla , el lugar o posición de los registros que quiero eliminar son aleatorios , intente hacer un bucle recorriendo el tablemodel y si contiene el texto elimar el registro pero la hacer esto me cambian los índices y solo me elimina algunos registros y otros los omite , a continuación posteo el código que utilice y espero alguien me pueda ayudar a solucionar y resolver el código correctamente , de antemano gracias por su atención

Código:
public void EliminarArticulo(){
//obtengo la fila seleccionada
int f = tblConcentradoTraspaso.getSelectedRow();
//asigno a la variable de tipo string IdArt el valor de la fila en su primer columna que es el id
String IdArt = (String) ModeloConcentradoTraspaso.getValueAt(f,0);

//obtengo el conteo de filas del tablemodel 
int cdt = ModeloDetalleTraspaso.getRowCount();
//inicio el bucle para recorrer el tablemodel
for(int rdt = 0;rdt< cdt;rdt++){
//condiciono si la primer columna del registro es igual a mi variable IdArt
if(IdArt.equals(ModeloDetalleTraspaso.getValueAt(rdt,0))){
//elimino el registro
ModeloDetalleTraspaso.removeRow(rdt);

}

}
ModeloConcentradoTraspaso.removeRow(f);
TotalArticulos();


}
  #2 (permalink)  
Antiguo 24/04/2013, 11:59
Avatar de fahs82  
Fecha de Ingreso: abril-2012
Ubicación: guadalajara
Mensajes: 139
Antigüedad: 12 años, 7 meses
Puntos: 12
Respuesta: Eliminar rows contengan texto determinado en defaultTableModel

Bueno ya solucione esto , el problema era que al eliminar un registro los índices cambiaban , asi que se soluciona haciendo el bucle a la inversa y recorrer el modelo de mayor a menor , asi aunque se elimine un articulo , el anterior conserva el mismo índice a continuación posteo el código correcto por si alguien necesita lo mismo que yo o se ha visto en el mismo dilema

Código:
int f = tblConcentradoTraspaso.getSelectedRow();
String IdArt = (String) ModeloConcentradoTraspaso.getValueAt(f,0);
int cdt = ModeloDetalleTraspaso.getRowCount();
for(int rdt = cdt -1;rdt >=0;rdt--){

if(IdArt.equals(ModeloDetalleTraspaso.getValueAt(rdt,0))){
ModeloDetalleTraspaso.removeRow(rdt);

}

}
ModeloConcentradoTraspaso.removeRow(f);
TotalArticulos();

Etiquetas: filas
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 02:16.