JPopupMenu anidado.

He estado programando un componente que me permita seleccionar una fecha a partir de un calendario.
Este se encuentra en un JComboBox el cual cada vez que de click en el aparecerán las herramientas para seleccionar el día, el mes y el año (así como el de windows o el kde de linux).
Sin embargo mi problema radica en que cada vez que intento desplegar el segundo jcombobox (que es el que cambia de mes) el primero (el que muestra todos los componentes del calendario) desaparece, dejando al aire el popupmenu de los meses.
Llegué a la conclusión (quizás errónea)
Los jpopupmenus en general (utilizados por jcombobox, menu, etc.) se comportan de tal manera que solo uno pueda ser visualizado a la vez.
Un ejemplo muy claro sería cuando tenemos 2 jcombobox uno alado de otro, si el primero está activo y damos click en el segundo, el primero ocultará su jpopupmenu para pasar a desplegar el segundo.
Yo estoy en que si se puede alterar este comportamiento, ¿la pregunta es como?

1 Respuesta

Respuesta
1
A ver... no entiendo muy bien cual es tu duda, creo que me has liado un poco con los JComboBox y los JPopupMenu...
Si no te he entendido mal me preguntas si se pueden mostrar varios JPopupMenu simultáneamente en la misma aplicación. La respuesta es sí y no :) Sí porque programando en código nativo puedes hacer cualquier cosa, y no porque Swing no permite este comportamiento en sus aplicaciones.
Piensa que un JPopupMenu es simplemente eso, un popup, y por lo tanto la aplicación lo quiere para que el usuario seleccione algo y punto. Quiero decir, si pulsas botón derecho en tu aplicación y aparece un JPopupMenu, y vuelves a pulsar el botón derecho en otro lugar para que aparezca otro JPopupMenu, el primero desaparecerá y aparecerá el segundo. Como te digo, entiendo que podrás modificar ese comportamiento utilizando JNI, pero no te lo recomiendo porque harás que tu aplicación sea... diferente para el usuario.
Si lo que me preguntas es por lanzar un JPopupMenu dentro de otro JPopupMenu... cambia el segundo JPopupMenu por un JMenu, y listo :) Quiero decir, tu solo tienes un JPopupMenu, y dentro de él añadirás objetos JMenu y JMenuItem. Los JMenuItem serán objetos simples, y los JMenu podrán albergar submenús.
Lo mismo ocurre con los JComboBox, sólo se puede tener uno activo cada vez. Pero no entiendo lo que dices de que al abrir uno entonces te deja al aire un JPopupMenu... Si me lo puedes explicar de otro modo intentaré darte una solución alternativa, pero desde ya te digo que no podrás tener en pantalla varios JComboBox o varios JPopupMenu simultáneamente abiertos.
Ok, nomAs era eso, saber si puede uno tener jpopups abiertos de forma simultAnea.
La intención era crear un componente para seleccionar la fecha (como en windows), pero varios ya me dijeron que es mejor usar un JDialog
para el calendario y un JComboBox para seleccionar la fecha.
Saludos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas