Java - Filtrado de una tabla

   
Vista:

Filtrado de una tabla

Publicado por Camila (3 intervenciones) el 14/03/2012 21:00:08
Hola, quisiera saber como poder realizar el filtrado de una tabla en java eclipse..la cuestión es que lo que pretendo es que a medida que en una caja de texto voy ingresando caracteres la tabla vaya disminuyendo! ....Por ejemplo en la caja de texto debo ingresar el apellido del paciente que comienza con "GU" ..me vaya filtrando la tabla desde la columna del apellido mostrando a todos pacientes cuyos apellidos comiencen con "GU" y a medida que le voy agregando mas letras esta se vaya disminuyendo.. por favor agradecería mucho quien pudiera ayudarme...y espero se entienda mi peticion, desde ya muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Filtrado de una tabla

Publicado por Javier M lanc_18@hotmail.com (94 intervenciones) el 15/03/2012 07:01:53
Hola aqui un ejemplo simple de como utilizar:
//yo cree una funcion donde indice es el getSelectedIndex() de un jcombox donde muestro el tipo de busqueda, luego tengo el txtbuscar donde voy escribiendo, la funcion buscarRegistro esta dentro del evento KeyReleased de txtbuscar:

public void buscarRegistro(int indice) {
if (acDAO != null) {
String strid = " and trim(cast(CCOD_ACTIVIDAD as unsigned)) LIKE '" + txtbuscar.getText().trim() + "%' ";
String strnom = " and CNOM_ACTIVIDAD LIKE '" + txtbuscar.getText().trim() + "%' ";
switch (indice) {
case 0:
objTable1.setModel(acDAO.getActividadEnTabla(ccod_empresa, strid));
break;
case 1:
objTable1.setModel(acDAO.getActividadEnTabla(ccod_empresa, strnom));
break;
}
}
}


//getActividadEnTabla es una funcion del tipo javax.swing.table.DefaultTableModel
public javax.swing.table.DefaultTableModel getActividadEnTabla(String idemp,String argument) {
return new DefaultTableModel(
getArregloActividades(idemp,argument),
new String [] {
"", "ID Actividad", "Descripcion", "Nivel", "Estado"
})
{
Class[] types = new Class [] {
java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.Boolean.class
};
boolean[] canEdit = new boolean [] {
false, false, false, false, false
};

public Class getColumnClass(int columnIndex) {
return types [columnIndex];
}

public boolean isCellEditable(int rowIndex, int columnIndex) {
return canEdit [columnIndex];
}
};
}

//getArregloActividades es la funcion que me devuelve el arreglo formado de la base de datos

public Object[][] getArregloActividades(String idemp,String argument){
List<Actividad> l = getActividades(idemp,argument);
Object[][] ac = new Object[l.size()][5];
int i = 0;
for (Actividad c : l) {
ac[i][0] = c.getCodEmpresa();
ac[i][1] = c.getCod();
ac[i][2] = c.getNom();
ac[i][3] = c.getNivel();
ac[i][4] = c.getEstado();
i++;
}
return ac;
}

//getActividades es arreglo
public List<Actividad> getActividades(String idemp,String argument) {
List<Actividad> lst = new ArrayList<Actividad>();
String sql = "select * from hcho_mempresa_actividad " +
" where CCOD_EMPRESA like '"+idemp+"' "+argument+" order by cast(CCOD_ACTIVIDAD as unsigned)";
try {
select(sql);
while (rs.next())
lst.add(recordSet(rs));
} catch (Exception e) {
e.printStackTrace();
setMensaje(e.getMessage());
}
showMensaje();
return lst;
}

//Actividad es la clase que contiene los get y set para poder recibir los datos de la bd

Espero que puedas obtener el resultado que querias con esta busqueda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Filtrado de una tabla

Publicado por Camila (3 intervenciones) el 15/03/2012 18:25:45
Hola muchas gracias por la respuesta, voy a probar lo que me haz mandado y te dire si me funciono! desde ya nuevamente muchas gracias =)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Filtrado de una tabla

Publicado por Camila kami_gz25@hotmail.com (3 intervenciones) el 19/03/2012 22:33:50
que significa para vos el public void buscarRegistro..?? porqe no se entiende bien...quisiera saber que es lo que obtenes y que datos le pasas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Filtrado de una tabla

Publicado por Javier M (94 intervenciones) el 20/03/2012 04:30:08
Este metodo lo puedes ponder dentro de un evento del de un jtextfield, lo que haces es recibir como parametro un numero entero, un indice de un combobox, si es 0 busca por id y si es 1 busca por nombre.

Lo importante es que este codigo

objTable1.setModel(acDAO.getActividadEnTabla(ccod_empresa, strid));
//ccod_empresa : es cualquier constante
//strid: es lo que escribes en el cuadro de texto buscar.

//Luego
public javax.swing.table.DefaultTableModel getActividadEnTabla(String idemp,String argument) {
return new DefaultTableModel(
getArregloActividades(idemp,argument),
new String [] {
"", "ID Actividad", "Descripcion", "Nivel", "Estado"
})

//donde getArregloActividades(idemp,argument) : es el metodo que obtengo para generar los datos que llenaran la tabla
// tu puedes modificar los parametros para que solo el argument

//En resumen: lo que hacia era una busqueda de actividades de una empresa segun el id o el nombre y segun como buscaba se refrescaba en un jtable.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Filtrado de una tabla

Publicado por angelito (1 intervención) el 20/06/2012 22:35:59
hola yo tengo el problema de que filtro la tabla pero no se como hacer q lo que queda filtrado en la tabla me llene unos textfield es decir talvez obtener el id obtenido por el filtro o algo asi si me pudieran ayudar se los agradeceria mucho :)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar