Menu en Java dinamico.

#1
¿ Con que componentes de Java puedo hacer un menu como el de la imagen ? Con Jmenu se hacelo, pero para un numero de filas fijo, osea sabiendo antes de ejecutar el programa cuantas tiene. Pero necesito algo dinamico, como en el ejemplo de los puertos COM, no es el mismo en todos los PC, por lo que necesito algo dinamico.

Gracias por todo.

 

Dr. Zoidberg

Well-known-Papá Pitufo
#2
Pero necesito algo dinamico, como en el ejemplo de los puertos COM, no es el mismo en todos los PC, por lo que necesito algo dinamico.
Es que no podés usar la asignación estática de items del menu por que no sabés cuantos hay! Tenés que contar la cantidad de opciones y meter en un for los new MenuItem() y los addMenu... para incorporarlos.
 
#3
Es que no podés usar la asignación estática de items del menu por que no sabés cuantos hay! Tenés que contar la cantidad de opciones y meter en un for los new MenuItem() y los addMenu... para incorporarlos.
Entonces, primero tendría que comprobar cuantos puertos hay, antes de iniciar el menú; y despues iniciar el menú con ese apartado en un for?

Saludos.
 

Dr. Zoidberg

Well-known-Papá Pitufo
#4
Entonces, primero tendría que comprobar cuantos puertos hay, antes de iniciar el menú; y despues iniciar el menú con ese apartado en un for?
Y...si se te ocurre alguna otra forma de hacerlo que no sea utilizando la bola de cristal para adivinar cuantas opciones de menu tenés que agregar....también puede ser válida :LOL: :LOL:.

Pero, si, eso es lo que tenés que hacer.
 
#5
Vale, con un bucle puedo hacer el submenu, con MenuItem() y addMenu, pero luego tengo que hacer algo cuando con el ratón pinche en uno de esos submenus.

Ahora para tratar los submenus estoy usando, submenu.addActionListener. Escribiendo el codigo tantas veces como submenus hay, y dentro hago las acciones necesarias, pero con un bucle ¿como lo hago?

Por ejemplo para el menu fichero tengo esto:

Código:
File.add(abrir);    
   
      abrir.addActionListener( new ActionListener() 
      {
                 public void actionPerformed( ActionEvent evento )
    	 {
                          //  Acciones para abrir.
                 }
       }


File.add(guardar);    
   
      guardar.addActionListener( new ActionListener() 
      {
                 public void actionPerformed( ActionEvent evento )
    	 {
                          //  Acciones para guardar.
                 }
       }

File.add(salir);    
   
      salir.addActionListener( new ActionListener() 
      {
                 public void actionPerformed( ActionEvent evento )
    	 {
                          //  Acciones para salir.
                 }
       }
 
Arriba