Hola a todos, saludos desde Mexico, recurro a ustedes después de horas de estar buscando una solución a mi problema con la eliminacion de algunas filas les explico:
Tengo una primer tabla con algunos datos como los siguientes:
Nombre| Apellido
Diego | Lopez
Maria | Martinez
Ivon | Hernandez
Diego | Fernandez
Diego | Rodriguez
Tras ello en un Campo de texto ingreso una busqueda "Diego", y se realiza el filtro de los datos, posteriormente esos datos lo envio a una segunda tabla donde solo aparecen:
Diego | Lopez
Diego | Fernandez
Diego | Rodriguez
Ahora el problema es que quiero borrar de la primera tabla todas las filas que correspondan a alguien con nombre "diego", y bueno les comento que en parte lo he conseguido pero solo me elimina a 2 con ese nombre y me sigue dejando a 1:
el código para filtrar es el siguiente:
Código Java:
Ver originalpublic void filtro() {
Filtro.setRowFilter(RowFilter.regexFilter(busca.getText(), 0));
}
El cual lo solicito desde el Campo de texto de busqueda:
Código Java:
Ver originalprivate void buscaKeyTyped
(java.
awt.
event.
KeyEvent evt
) { public void keyReleased
(final KeyEvent e
) { String cadena
= (busca.
getText()); busca.setText(cadena);
repaint();
filtro();
}
});
Filtro = new TableRowSorter(tabla1.getModel());
tabla1.setRowSorter(Filtro);
Una vez realizada la busqueda traspaso los datos a la segunda tabla con el siguiente codigo:
Código Java:
Ver originalfor (int i = 0; i < modelo1.getRowCount(); i++) {
for(int c = 0; c < modelo1.getColumnCount(); c++){
if (modelo1.getValueAt(i, c).equals(busca.getText())) {
Vector[0]=modelo1.
getValueAt(i,
0).
toString(); Vector[1]=modelo1.
getValueAt(i,
1).
toString(); Pantalla2.
modelo2.
addRow(Vector); }
}
}
borrarFilasCon(busca.getText());// este metodo es con el que trato de borrar las filas con el valor que se esta buscando
El metodo que uso para borra es este:
Código Java:
Ver originalpublic void borrarFilasCon
(String nombre
) {
for (int f = 0; f < modelo1.getRowCount(); f++)
{
for(int c = 0; c < modelo1.getColumnCount(); c++)
{
if (modelo1.getValueAt(f, c).equals(nombre))
{
modelo1.removeRow(f);
} else {
}
}
}
}
Model1 es un DefaultTableModel;
Y bueno no encuentro como solucionarlo, mi problema es que al eliminar la primera fila con nombre Diego disminuye el numero de filas y ya no corresponden a lo que se eliminaria en un inicio pues las posiciones cambian...
Quedando asi:
Maria | Martinez
Ivon | Hernandez
Diego | Rodriguez
Espero puedan ayudarme y enverdad muchas gracias por prestarme de su atención