Deshabilitar JComboBox al cambiar de ítem en Java

Logo Java

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í:

deshabilitar jcombobox al cambiar de ítem

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.

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.

deshabilitar jcombobox al cambiar de ítem

Al seleccionar el evento ItemStateChanged, serás direccionado al código del formulario, donde solo deberás codificar una sola línea.

Cómo deshabilitar un combobox en Java NetBeans

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í:

Bloquear jcombobox en java

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.