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

[SOLUCIONADO] buscador de coincidencias

Estas en el tema de buscador de coincidencias en el foro de Java en Foros del Web. hola, tengo un problema es q tengo este código para hacer un buscador pero no me funciona bien y lo que quiero es q cuando ...
  #1 (permalink)  
Antiguo 08/09/2013, 15:13
Avatar de detective_jd  
Fecha de Ingreso: abril-2011
Ubicación: Salto
Mensajes: 437
Antigüedad: 13 años, 7 meses
Puntos: 6
buscador de coincidencias

hola, tengo un problema es q tengo este código para hacer un buscador pero no me funciona bien y lo que quiero es q cuando escribo la nombre de un estadio me tiene q aparecer las filas q coincidan con lo q escribo en el jtable

public TreeMap<Integer,Estadio>devolverDatosXNombre(Strin g criterio)
{
TreeMap<Integer,Estadio>aux =new TreeMap();
int posTemp=0;
for(Estadio obje : colestadios.values())
{
if(obje.getNombre().matches(criterio)){
obje.setPosXfiltro(posTemp);
aux.put(obje.getNumero(), obje);
posTemp++;
}
}
return aux;
}

cuyo código en la caja de texto ya esta hecho:

private void txtbuscadorKeyReleased(java.awt.event.KeyEvent evt) {
if(!this.txtbuscador.getText().isEmpty())
{
this.cargarXBusqueda(this.txtbuscador.getText().to UpperCase());
}
else
{
if(this.TabMantenimiento.getSelectedIndex()==0)
objpe.getPage();
else if(this.TabMantenimiento.getSelectedIndex()==1)
objpd.getPage();
else if(this.TabMantenimiento.getSelectedIndex()==2)
objpi.getPage();
else if(this.TabMantenimiento.getSelectedIndex()==3)
objpp.getPage();
}
}

pero no me funciona las coincidencias de los q escribo, ese es el problema. si me ayudan, se los agradezco.

PS: devolverDatosXNombre es el método q realiza la búsqueda y q invoca cargarXBusqueda.
  #2 (permalink)  
Antiguo 10/09/2013, 20:07
Avatar de detective_jd  
Fecha de Ingreso: abril-2011
Ubicación: Salto
Mensajes: 437
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: buscador de coincidencias

lo q quiero q haga es los sgte:

tengo estos estadios:

1 --- GGUYYY
2 --- GHYRRF
3 --- GUTSSS
4 --- KESSAS
5 --- NHDFFV

yo escribo la g, me tienen q aparecer esto:

1 --- GGUYYY
2 --- GHYRRF
3 --- GUTSSS

si escribo gg, debería aparecer esto:

1 --- GGUYYY

el error de la función devolverDatosXNombre esta aquí:

if(obje.getNombre().matches(criterio))

y es ahí dónde no sé q hacer, x favor es eso lo q quiero arreglar, si me ayudan se los agradezco
  #3 (permalink)  
Antiguo 12/09/2013, 07:32
 
Fecha de Ingreso: septiembre-2013
Mensajes: 1
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: buscador de coincidencias

El metodo matches de la clase String necesita un parametro tipo String, que debe tener el formato de una expresion regular. Luego, el metodo devolvera un boolean segun la comparacion sea correcta o no.

Mira esto:
http://docs.oracle.com/javase/tutorial/essential/regex/
http://docs.oracle.com/javase/7/docs/api/java/lang/String.html
  #4 (permalink)  
Antiguo 16/09/2013, 12:50
Avatar de detective_jd  
Fecha de Ingreso: abril-2011
Ubicación: Salto
Mensajes: 437
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: buscador de coincidencias

problema resuelto, todo lo q tuve q hacer era esto:

public TreeMap<Integer,Estadio>devolverDatosXFiltro(Strin g criterio)
{
TreeMap<Integer,Estadio>aux =new TreeMap();
int posTemp=0;
for(Estadio obje : colestadios.values())
{
if(obje.getNombre().substring(0, criterio.length()).equalsIgnoreCase(criterio))
{
obje.setPosXfiltro(posTemp);
aux.put(obje.getNumero(), obje);
posTemp++;
}
else
{
obje.setPosXfiltro(-1);
}
}
return aux;
}
public Estadio obtenerElementoXFiltro(int posicion)
{
Estadio objestadio=null;
for(Estadio obje : colestadios.values())
{
if(obje.getPosXfiltro()==posicion && obje.getPosXfiltro()!=-1)
{
objestadio=obje;
}
}
return objestadio;
}

gracias AnonUser por la ayuda

Etiquetas: buscador, coincidencias, jtable
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 00:16.