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

Busqueda progresiva

Estas en el tema de Busqueda progresiva en el foro de Java en Foros del Web. Buenas tardes, me inicio en este foro ya que he encontrado respuestas de suma utilidad, espero poder comenzar a colaborar de forma activa. la consulta ...
  #1 (permalink)  
Antiguo 21/10/2009, 11:18
 
Fecha de Ingreso: febrero-2009
Mensajes: 4
Antigüedad: 15 años, 9 meses
Puntos: 0
Busqueda progresiva

Buenas tardes,
me inicio en este foro ya que he encontrado respuestas de suma utilidad, espero poder comenzar a colaborar de forma activa.

la consulta es la siguiente, me encuentro desarrollando una aplicación OOP en java, cuya interface es con SWING.

tengo una lista de personas (por ejemplo, porque lo usaría en más de un caso).
que se muestra en un JListBox, sobre este JListBox hay un JTextField.


la idea es que a medida que el usuario escribe en el JTextField, la lista se vaya filtrando.... tengo dominio de swing y java, probé reordenando el ArrayList cada vez que el usuario presiona una tecla... pero no encuentro algo eficiente.

muchas gracias desde ya
  #2 (permalink)  
Antiguo 21/10/2009, 12:34
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 9 meses
Puntos: 260
Sonrisa Respuesta: Busqueda progresiva

Hola,

Posiblemente, podrías implementar tu modelo de datos para el JList creando una clase que extienda AbstractListModel; esta clase podría tener 2 ArrayList privados uno con todos los datos y otro solamente con los datos filtrados.

A esa clase le podrías implementar un método filtrar(String filtro), en ese método pasas todos los datos que cumplan con el filtro al segundo ArrayList y al finalizar disparas el evento fireContentsChanged(); en los otros métodos abstractos getElementAt() y getSize() usas ese segundo ArrayList.

En el formulario JForm creas una instancia de esta clase de modelo de datos y se la asignas al JList con setModel() (de alguna forma llenas el primer ArrayList de tu modelo, con un método mas en el modelo, o haces publico el mismo).

En el KeyListener del JTextField, mandas a llamar al método que creaste en tu modelo filtrar(), y cuando presiones una tecla se van a actualizar los datos del JList solamente con los que dejaste pasar en el filtro.

Pero ... solo es una idea, posiblemente se pueda implementar más fácil con otro método, aunque en este caso estas usando una vista que observa el modelo como es lo adecuado ... creo ...

Saludos,
  #3 (permalink)  
Antiguo 21/10/2009, 16:56
 
Fecha de Ingreso: febrero-2009
Mensajes: 4
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Busqueda progresiva

Mil gracias, esa es una forma, lo que me gustó es lo que tu comentás de la vista que mira el modelo. pero me gustaría ver si alguna persona puede aportar alguna otra idea para ver cual es la más eficiente en mi caso...

Gracias mil.
  #4 (permalink)  
Antiguo 22/10/2009, 02:49
Avatar de elAntonie  
Fecha de Ingreso: febrero-2007
Mensajes: 894
Antigüedad: 17 años, 9 meses
Puntos: 10
Respuesta: Busqueda progresiva

Wenas

Siempre puedes hacer un formulario jsp y obtener lo que tu quieres con ajax. Hay 1000 ejemplos en internet de como funcionaria.

Saludos.
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 13:56.