El manejo de controles en los formularios de Java es imprescindible, debemos pensar cómo serán utilizados por el usuario final; así mismo que queremos que suceda cuando se ha establecido un valor o cambiado un estado. Hoy veremos un sencillo ejemplo de ello, en este artículo verás cómo deshabilitar JComboBox al cambiar de ítem, una practica la verdad bastante común.
Deshabilitar JComboBox al cambiar de ítem
Primero que todo supongamos que tenemos un JComboBox con distintos valores, para este caso una serie de colores, así:
Lo que deseamos lograr, es que al momento de seleccionar cualquier color de la lista. El JComboBox, quede inmediatamente deshabilitado, sin opción de elegirlo nuevamente.
🌟 ¡Visita Nuestra Tienda para Programadores! 🌟Descubre Códigos Fuente, Cursos, Software, Computadoras, Accesorios y Regalos Exclusivos. ¡Todo lo que necesitas para llevar tu programación al siguiente nivel!
Configurando el Evento ItemStateChanged
Este evento permitirá detectar cuando se ha realizado un cambio de ítem en el JComboBox, puedes configurarlo, presionando clic derecho sobre el JComboBox, selecciona Eventos, item y a continuación ItemStateChanged.
Al seleccionar el evento ItemStateChanged, serás direccionado al código del formulario, donde solo deberás codificar una sola línea.
Al Ejecutar el programa verás cómo al seleccionar un ítem diferente al seleccionado por defecto «Rojo«, el JComboBox es bloqueado o deshabilitado, sin embargo esto tiene un problema.
El primer ítem ya está seleccionado, por lo tanto no está cambiando de estado y no se bloquea.
Este detalle podemos ajustarlo sin necesidad de usar más líneas de código, sólo agregando un ítem más a la lista que invite usuario a seleccionar una opción; para este caso podemos añadir como primer ítem, un valor vacío que por regla deberá ser cambiando por alguno de la lista, así:
Finalmente tendremos las opciones necesarias, con una opción inicial definida como «vacía», verás que si hacemos clic nuevamente en el primer ítem del JComboBox no se bloqueará, en vista que no estamos cambiando el estado.
Cómo nota final, impedir que el usuario pueda cambiar de manera fácil una opción, son aspectos importantes que debemos considerar; sin embargo si es estrictamente necesario podemos acudir a funciones como estas.