Registrar eventos submenu en Java

Hola a todos,

tengo creado un menú con submenus en una Jframe. Quiero deshabilitar en función de una condición de otra class un submenú, y habilitarlo cuando cambie esa condición.

He intentado hacerlo de dos formas:

1- Definiendo el submenú como satatico: public static MenuItem abrir=new MenuItem("Abrir");

Y habilitando o deshabilitandolo desde esa otra class. Pero esto dá problemas, pues desaparece el submenú, en lugar de aparecer deshabilitado.


2- Habilitando o deshabilitando el submenú desde la Jframe. El problema de esto es que una vez que lo deshabilito, no puedo registrar el evento y por lo tanto no puedo habilitarlo de nuevo.

El codigo de esto ultimo es este:

Código:
       abrir.addActionListener( new ActionListener() 
      {  // clase interna anónima

    	 public void actionPerformed( ActionEvent evento )
    	 {
    		 
    		 if(TogglePanel.MarchaParo == TogglePanel.PARO)
           	 {
             	    //Habilitamos la opcion de abrir fichero
             	    abrir.setEnabled(true);	
    		    menu_espectro = 1;
       		    MiTablaGrafica.MostrarTablayGrafica();
                  }
                  if(TogglePanel.MarchaParo == TogglePanel.MARCHA)
                  {
            	         //Deshabilitamos la opcion de abrir fichero
            	         abrir.setEnabled(false);
                   }	
          }
      }  // fin de la clase interna anónima
      ); // fin de la llamada a addActionListener

¿Se puede registrar un evento de un submenú deshabilitado? ¿Como?

Gracias por todo.
 
No se programacion Java, pero en PHP me sucedio algo similar.. necesitaba colocar un control deshabilitado con ciertos colores, pero me di cuenta que cuando deshabilitas un control el navegador elige los colores y se pasa de largo a CSS

asi que al final lo disfrace... hize una clase "deshabiitado" que parecia el control y lo ponia justo como yo queria y en vez de un hiperlink le puse un texto plano...
 
tengo creado un menú con submenus en una Jframe. Quiero deshabilitar en función de una condición de otra class un submenú, y habilitarlo cuando cambie esa condición.
Me parece que tenés un serio error de diseño. Lo que se hace en esos casos es armar una interfaz con un método callback.. pero sin detalles no se puede llegar muy lejos.

He intentado hacerlo de dos formas:
1- Definiendo el submenú como satatico: public static MenuItem abrir=new MenuItem("Abrir");
Y habilitando o deshabilitandolo desde esa otra class. Pero esto dá problemas, pues desaparece el submenú, en lugar de aparecer deshabilitado.
Esta es una PESIMA idea. Esto es JAVA, no C++.

2- Habilitando o deshabilitando el submenú desde la Jframe. El problema de esto es que una vez que lo deshabilito, no puedo registrar el evento y por lo tanto no puedo habilitarlo de nuevo.
¿Se puede registrar un evento de un submenú deshabilitado? ¿Como?
Por que no te expresás más claramente? :enfadado:
Lo que se registra NO ES EL EVENTO sino el Listener del evento, y eso se hace en (o cerca d)el momento de la creación... y se hace solo una vez, así que no sé que es lo que pretendés hacer.
Si a lo que te referís es a GENERAR el evento desde un botón deshabilitado... entonces estás MAAAAAALLLL! Si está deshabilitado (no puede producir un click), como esperás que genere un ActionEvent si no lo podés clickear..

Andá aclarando que es lo que tenés que hacer, pero ya te aviso que la primera opción es un desastre.
 
Atrás
Arriba