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

Desactivar elementos de un ComboBox

Estas en el tema de Desactivar elementos de un ComboBox en el foro de Java en Foros del Web. Tengo el siguiente problema y próposito. Dispongo de un JPanel con 2 ComboBox, y quiero que en función del elemento seleccionado en el primero se ...
  #1 (permalink)  
Antiguo 11/03/2009, 04:04
 
Fecha de Ingreso: junio-2008
Ubicación: Madrid
Mensajes: 73
Antigüedad: 15 años, 10 meses
Puntos: 1
Desactivar elementos de un ComboBox

Tengo el siguiente problema y próposito.

Dispongo de un JPanel con 2 ComboBox, y quiero que en función del elemento seleccionado en el primero se activen o desactiven elementos del segundo.

He estado dandole vueltas al asunto y he llegado a dos pobibles soluciones:
1. Eliminar del segundo ComboBox aquellos elementos que no puedan ser seleccionados según se elijan en el primero y repintarlo.
2. En aquellos elementos que no se puedan seleccionar usar algún tipo de indicación, mediante un JOptionPane o cambiandole el nombre.

Problemas:
La aplicación va a una base de datos, y cada elemento tiene que guardarse con un indice espécifico.

También habia pensado en crearme mi propio método deseleccionarItem(JCombobox combo, Object elemento) e ingeniarmelas ahí para devolver dicho elemento "oculto" o no seleccionable.

¿Alguien ha conseguido realizar esto de alguna otra forma?
Gracias.
  #2 (permalink)  
Antiguo 11/03/2009, 11:45
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: Desactivar elementos de un ComboBox

No hay una forma inmediata.

Puedes probar con el método setRenderer() del JComboBox. Ahí le debes pasar una clase que devuelve el componente que se usará para pintar cada uno de los items. Puedes devolver el componente seleccionado o deseleccionado. Lo que no estoy seguro es que aunque tenga pinta de deseleccionado, no se pueda pulsar.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
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 21:33.