MENUS en JAVA

Cada ventana de nivel superior puede tener una barra de menús. Esta barra esta compuesta por menús popup, los cuales están compuestos de menús ítem. Los menús de tipo ítem también pueden comportarse como popup con lo que podremos anidar submenus creando una jerarquía.

Lo primero es crear la barra de menús mediante la clase MenuBar. Una vez creada, iremos creando los menús popup y cada uno de los ítem que contengan los popup. Y por último tendremos que ir añadiendo los ítem a los popup y los popup a la barra. También debemos añadir la barra de menú a la ventana.

 

CREAR BARRA DE MENU:

MenuBar obj_barra_menu=new MenuBar();

CREAR MENU POPUP:

Menu obj_menu=new Menu(“texto”);

 

CREAR MENU ITEM:

MenuItem obj_item=new MenuItem(“texto”);

CheckMenuItem obj_item=new CheckMenuItem(“text”);

 

AÑADIR MENU ITEM A MENU POPUP:

obj_menu.add(obj_item);

 

AÑADIR MENU POPUP A LA BARRA:

ojb_barra_menu.add(obj_menu);

 

AÑADIR BARRA A LA VENTANA:

objeto_frame.setMenuBar(obj_barra_menu);

 

EJEMPLO:  Con este ejemplo solo visualizamos la ventana y el menú.

import java.awt.*;

import java.applet.*;

class menus extends Applet{

public void init(){

Frame ventana=new Frame(«MENUS»);

ventana.resize(200,200);

          MenuBar barra=new MenuBar();

          Menu m_archivo=new Menu(«Archivo»);

Menu m_edicion=new Menu(«Edicion»);

Menu m_deshace=new Menu(«Deshacer»);

          MenuItem abrir=new MenuItem(«Abrir»);

MenuItem guardar=new MenuItem(«Guardar»);

MenuItem imprime=new MenuItem(«Imprimir»);

MenuItem copiar=new MenuItem(«Copiar»);

MenuItem cortar=new MenuItem(«Cortar»);

MenuItem pegar=new MenuItem(«Pegar»);

MenuItem todo=new MenuItem(«Total»);

MenuItem parte=new MenuItem(«Parte»);

 

(sigue)

   m_archivo.add(abrir);

m_archivo.add(guardar);

m_archivo.add(new MenuItem(«-«));

m_archivo.add(imprime);

          m_edicion.add(copiar);

m_edicion.add(cortar);

m_edicion.add(pegar);

          m_deshace.add(todo);

m_deshace.add(parte);

          m_edicion.add(m_deshace);

          barra.add(m_archivo);

barra.add(m_edicion);

          ventana.setMenuBar(barra);

ventana.show();

}

}

 

Una vez construido el menú y todos sus niveles lo que debemos hacer, es verificar en nuestro manejador de eventos (método action) el ítem que seleccionamos para realizar las acciones asociadas. Esta verificación la realizamos comparando el evento con los ítem que tenemos en nuestro menú.

En este tipo de aplicaciones debemos tener una clase que herede la clase Applet que solo tendrá la creación de la ventana. y otra distinta que herede Frame, la cual tendrá  todos los métodos action, paint, etc… Todas las acciones y métodos de la clase que hereda Frame actúan sobre la ventana creada.

EJEMPLO:

import java.awt.*;

import java.applet.*;

public class menus extends Applet{

public void init(){

        ventana v1=new ventana();          

}

}

class ventana extends Frame{

MenuBar barra=new MenuBar();

Menu m_colores=new Menu(«Colores»);

MenuItem rojo=new MenuItem(«Rojo»);

MenuItem azul=new MenuItem(«Azul»);

MenuItem salir=new MenuItem(«Salir»);

 

 

(sigue)

public ventana(){

m_colores.add(rojo);

m_colores.add(azul);

m_colores.add(new MenuItem(«-«));

m_colores.add(salir);

barra.add(m_colores);

setMenuBar(barra);

resize(200,200);

show();

}

        public boolean action(Event evt,Object obj){

           if(evt.target==rojo)

           {

setBackground(Color.red);

return true;

           }

if(evt.target==azul)

{

setBackground(Color.blue);

return true;

}

if(evt.target==salir)

{

               dispose();

return true;

}

return false;

}

}// cierra la clase ventana

 

Otro de los puntos importantes en los menús es la posibilidad de activar y desactivar las opciones que tiene un menú. Ambas acciones se consiguen mediante dos métodos internos, que ya vienen implementados en java.

DESACTIVAR MENU:

objeto_item.disable();

ACTIVAR MENU:

objeto_item.enable();

 

 


0 comentarios

Deja una respuesta

Marcador de posición del avatar

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *