Mostrando entradas con la etiqueta popup. Mostrar todas las entradas
Mostrando entradas con la etiqueta popup. Mostrar todas las entradas

viernes, 2 de septiembre de 2011

HOW TO: resize jcombobox popup // redimensionar popup de un JCombobox

Hola a todos. si sueles programar en java, o al menos lo intentas (como es mi caso xD),  mas de alguna ocasión has creado una aplicación de escritorio usando las JFC para crear tu GUI. si es así, quizá es bastante posible que hallas usado un JCombobox que se llena desde la base de datos (con información la cual no sabemos la longitud que posee).

cuando este caso se presenta pueden ocurrir los siguientes problemas o complicaciones del diseño:
  • El objecto no muestra su texto completo, dejando incompleta la información que necesitamos mostrar en el JCombobox
  • El componente (JCombobox) se auto-re dimensiona al ancho del objeto con el texto mas extenso... cuando esto sucede, es bastante común que el componente desordene otros componentes que están ubicados cerca de el, obligándonos a re diseñar o re ubicar algunos componentes en dicha pantalla; lo cual implica tiempo, tiempo que lo podríamos estar usando para avanzar en otras pantallas del sistema o... simplemente para navegar por Internet ^^
un ejemplo ilustrado del terrible problema:

EDITO: debido a un problema con algunas versiones de jdk lanza un Null Pointer; al final de la entrada agrego un metodo alternativo para lograr el mismo objetivo.

Bueno para solucionar dichos problemas vamos a crear una clase que implemente la interfaz PopupMenuListener la cual va a cambiar los límites (ancho) del menú emergente para proveer al JComboBox algunas funcionalidades diferentes. entre las cuales:
  • la ventana emergente puede ser más amplio que el JCombobox
  • la ventana emergente se muestra por encima del JCombobox (útil cuando el componente esta ubicado al fondo de la pantalla y las opciones que desplegara son bastantes, evitando así que las opciones ultimas de la lista no sean visibles)