Java - Scroll automático en JList

 
Vista:

Scroll automático en JList

Publicado por Mario (199 intervenciones) el 29/07/2008 15:02:48
Buenas tardes, mi pregunta es sencilla. Estoy haciendo un pequeño componente que se compone de un JList dentro de un JScrollPane. Lo que quiero es que al pulsar las flechas de dirección suba o baje la selección y a su vez la barra de desplazamiento para que se vea correctamente. Este comportamiento lo dirijo desde otro componente padre, el cual en ese momento tiene el foco, por eso el comportamiento no es automático y lo tengo que realizar mediante código. Como logro que al ir bajando la selección no se me "pierda de vista" al superar el límite inferior del JList??
Espero que me puedan ayudar. 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

RE:Scroll automático en JList

Publicado por Mario (199 intervenciones) el 30/07/2008 13:22:10
Bueno, en ausencia de respuestas y tras mucho marear la perdiz y hacer pruebas, he conseguido lo que quería y quiero postearlo porque creo que es algo que puede resultar útil y que aunque la solución está delante de nosotros, a veces cuesta verla.

Lo que estoy desarrollando es un JTextField con una especie de autocomplete. Al componente se le asigna una lista de valores y cuando vas escribiendo sobre el te muestra una lista con un scrollBar con los posibles valores que van coincidiendo con lo que vas escribiendo, y así puedes seleccionar cualquiera de los que te muestra. Mientras no escribes o tras haber seleccionado el elemento que interesa, esta lista desaparece y ves solamente el JTextField.

Pues bien... quería que desde ese JTextField se capturasen las teclas de dirección arriba y abajo para podernos mover por la lista de valores mostrada sin tener que usar el ratón.

Esto se hacía bien, pero el JScrollPane no "acompañaba" ese movimiento, es decir, llegaba un momento en el que la selección de la lista se salía de los margenes del scrollPane y la barra de desplazamiento no se movía.

Esto se soluciona pasando el KeyEvent capturado en el textField al JScrollPane mediante el método JScrollPane.processKeyEvent(evt). Como veis, la solución es bastante sencilla, pero no siempre se encuentran las cosas rápido.

Espero que a alguien le sirva de ayuda.
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

RE:Scroll automático en JList

Publicado por White_King (2 intervenciones) el 07/04/2009 17:08:16
Que!, ps si es exactamente lo que ando buscando, estoy haciendo lo mismo, solo que mi lista no desaparece, el problema es que ese metodo que propones como solucion me marca que tiene acceso privado en JComponent y no me deja usarlo, no se como le habras echo tu, si puedes decirme por messenger o algo... te dejo mi mail:

[email protected]
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

RE:Scroll automático en JList

Publicado por Leuqim (2 intervenciones) el 06/07/2014 11:21:08
Hola White_King, aunque unoa años mas tarde me encuentro con el mismo problema : el mensaje "processKeyEvent(KeyEvent) has protected access in JComponent". Pudiste solucionar el problema ?. Si es así, serias tan amable de darme alguna pista ?. Mi correo es [email protected]
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