Java - Acceder a variable de un menu desde otra clase

 
Vista:

Acceder a variable de un menu desde otra clase

Publicado por Alejandro (279 intervenciones) el 18/07/2005 03:57:32
Saludos compañeros, quiero acceder a una variable de un menu desde otra clase distinta. Esa variable esta dentro d un menu, es decir, en esta clase (la clase se llama Menu9) tengo un panel de nombre "panel", en ese panel dentro tengo un JMenuBar "barra", dentro el menu JMenu "menu" con la opcion del menu "Ejecucion" y como submenu el JMenuItem, "inducir". Pues quiero acceder a esta variable desde otra clase distinta a esta variable inducir para ponerle un setEnabled(false), y le hago lo siguiente:

Menu9 men;
men.barra.menu.ejecucion.inducir.setEnabled(false);
o tambien
men.barra.menu.ejecucion.inducir.setEnabled(false);

Otra cosa, con que en el constructor le ponga public Menu9() { // declaracion de variables }, con ese public ya puedo acceder a sus variables desde cualquier punto no ??
Gracias y espero vuestras respuestas, porfavor
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 755
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

RE:Acceder a variable de un menu desde otra clase

Publicado por Yamil Bracho (2315 intervenciones) el 19/07/2005 15:16:29
Es mas facil que coloques un setter en la clase donde defines el menu, digamos
apagarMenu( boolean apagarPrender )
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Acceder a variable de un menu desde otra clase

Publicado por Alejandro (279 intervenciones) el 27/07/2005 19:03:18
Pero de todas maneras, que secuencia tendria que poner para poder acceder a esa variable??? Gracias por vuestra ayuda y espero alguna respuesta.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 755
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

RE:Acceder a variable de un menu desde otra clase

Publicado por Yamil Bracho (2315 intervenciones) el 27/07/2005 20:22:55
Pasas una instancia de la clase que contiene el menu( digamos ClaseMenu) a la segunda clase( ClaseDos) asi.

// ClaseMenu
ClaseDos dos = new ClaseMenu( this );

// En la clase Dos
public class ClaseDos {
ClaseMenu claseMenu;

public ClaseDos( ClaseMenu claseMenu ) {
this.claseMenu = claseMenu;
..
}

Cuando quieras acceder apagar la opcion haces
claseMenu.apagarOpcion( false );
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Acceder a variable de un menu desde otra clase

Publicado por Alejandro (279 intervenciones) el 27/07/2005 23:16:50
1. Esta sentencia tengo que ponerla en la clase del principal que contiene el main no, en la claseMenu ??

ClaseDos c2=new ClaseMenu(...........);

2. Y esa variable que llamas "dos", cuando se usaria ???

3. Y si el menu esta dentro de un panel, influye para acceder a ella ??
Valdria con ClaseMenu.menuA.opcionMenu.setEnabled(false);
o habria que poner
ClaseMenu.panelprincipal.panelmenu.menuA.opcionMenu.setEnabled(false); ???

Perdona, xo es que estoy un poco perdido.
Gracias por tu ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 755
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

RE:Acceder a variable de un menu desde otra clase

Publicado por Yamil Bracho (2315 intervenciones) el 28/07/2005 16:11:39
1) Exacto...
2) dos es una instancia de ClaseDos. La usas cuando la llamas del Menu
3) No no importa si esta dentro de un panel. Si quieres hacer opcionMenu.setEnabled(false); debes declarar opcionMenu como public o protected
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Acceder a variable de un menu desde otra clase

Publicado por Alejandro (279 intervenciones) el 30/07/2005 20:05:39
Respescto al punto 3, consegui acceder a esa variable, poniendo un metodo habilitaInducir en la clase Menu9, y desde la otra clase accedo a ese metodo, y accede bien, xo no me realiza el setEnabled de la opcion del menu.
El MenuItem lo tengo dentro de un MenuBar, el menu dentro de un panelB, y este panel dentro de otro panel mas grande panelA. Para acceder a ese submenu, que tendria que hacer ??
panelA.panelB.MenuBar.MenuItem.setEnabled(false);
o simplemente MenuItem.setEnabled(false);

Por favor, echame un cable. Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 755
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

RE:Acceder a variable de un menu desde otra clase

Publicado por Yamil Bracho (2315 intervenciones) el 01/08/2005 15:26:13
No hace falta que recorras toda la jerarquia de un container para llegar al componente. Para hacer menuItem.setEnabled(false);
debes hacer que menuItem sea una variable publica y que ademas tengas una instancia de la clase a la cual pertenece. Por ejemplo
miClase.menuItem.setEnabled( false )
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Acceder a variable de un menu desde otra clase

Publicado por Alejandro (279 intervenciones) el 02/08/2005 21:52:03
Lo hago asi y compila bien, xo si pongo:

Menu miClase; // menu es el nombre d la otra clase, que contiene el main
miClase.menuItem.setEnabled(false);

me da un error al compilar, me dice que miClase no esta inicializada, con lo que tengo que hacer:

Menu miClase; // menu es el nombre d la otra clase, que contiene el main
miClase=new MiClase();
miClase.menuItem.setEnabled(false);

y ahi ya me crea otra instancia del programa principal y no me habilita como true esa opcion del menu. Me podrias ayudar por favor ???
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 755
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

RE:Acceder a variable de un menu desde otra clase

Publicado por Yamil Bracho (2315 intervenciones) el 03/08/2005 17:14:13
Lo que tienes que hacer es tener una variable de tipo menu dentro de la clase donde estas haciendo la llamada. La solucion ideal hubiese sido tener un metodo estatico dentro de la clase Menu que te retorna la referencia al objeto creado pero como no puedes referenciar algo no estatico en un metodo estatico pues no se puede, asi que una solucion es tener pasar la instancia de Menu a la clase donde necesitas llamarla
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Acceder a variable de un menu desde otra clase

Publicado por Alejandro (279 intervenciones) el 03/08/2005 18:23:10
Ya ya, lo hago asi, creando una variable dentro de mi clase, del tipo:
Menu m;
m.menuItem.setEnabled(true);

pero me da un error diciendo que tengo que inicializarla, por lo que tengo que hacer
Menu m;
m=new Menu();
m.menuItem.setEnabled(true);

y como Menu tiene el main, es como si me ejecutase otra vez la aplicacion no ??? con lo que me crearia otro menu nuevo, y no quiero eso. Ahora mismo estoy perdido buffff.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar