sábado, 14 de julio de 2012

5.4.1. Menus

Menú
El uso de menús es una manera sencilla de ahorrar espacio permitiendo al usuario de una manera elegante seleccionar una de varias opciones.
Un menú aparece como una barra de menús o como un menú desplegable.
Una barra de menú contiene uno o más menús y por lo general se encuentra en la parte superior de la ventana.
Un menú del tipo desplegable por lo general es invisible hasta que se realice una acción como por ejemplo presionar el botón derecho del ratón. Este tipo de menús aparecen justo debajo del cursor.
El concepto de menús es implementado en Java utilizando la siguientes clases:MenuBarMenu y MenuItem.
En general, la barra de menús contiene uno o más objetos de tipo Menu. Cada objeto de tipo Menu, contiene una lista de MenuItem. Cada objeto MenuItem representa algo que puede ser seleccionado por el usuario. Por la forma en la que están definidas estas clases es posible crear submenús.
Si en una aplicación se desea añadir un menú se deben realizar las siguientes acciones en el orden que se muestra:
  • Crear los objetos de tipo MenuItem
  • Crear los objetos menú y pegarles los MenuItem
  • Crear un MenuBar y pegarle los Menús.
Creación de menús
Un Applet que desee tener un menú, debe crear un Frame en primer lugar.
public class ejemplo1 extends Frame {
Para crear una barra de menú es necesario crear una instancia de MenuBar a la cual se le agregarán los diferentes menús.
// Crear la barra de menú
MenuBar miBarra;
miBarra = new MenuBar();
Ya teniendo la barra se puede proceder a crear los menús que ésta tendrá. Por ejemplo si se desea que el primer menú de la barra se llame “Ayuda” se deben realizar las siguientes instrucciones:
// Crear el primer elemento de la barra
Menu miMenu;
miMenu = new Menu( "Ayuda" );
Observe que el constructor de la clase Menu requiere como argumento un String con el nombre del menú.
Cada menú puede contener a su vez otros menús. Para establecer cada opción del menú se debe a su vez crearlos y agregarlos.
Las siguientes líneas de código ejemplifican la forma de crear un menú de nombre “Opcion1” con las opciones “Primero” y “Segundo”.
//Crear y Agregar la primer opción del primer elemento de la barra
Menu opcion1;
opcion1 = new Menu( "Opcion1" );
opcion1.add( new MenuItem( "primero" ) );
opcion1.add( new MenuItem( "segundo" ) );
miMenu.add( opcion1 );

Observe que el método add se utiliza para agregar los elementos del menú. Las instrucciones anteriores se pueden repetir para cada una de las opciones del menú de la barra.

Finalmente, se debe agregar el menú creado con sus elementos a la barra y establecer la barra en la ventana como por ejemplo:

//Agregar el primer elemento a la barra de menú
miBarra.add( miMenu );
//Colocar la barra
setMenuBar( miBarra );

La siguiente aplicación reúne todo lo anterior y permite mostrar una ventana con menús como la siguiente:



import java.awt.*;

public class ejemplo1 extends Frame {
//Constructor de la clase
public ejemplo1 () {
// Definir título de la ventana
setTitle( "Mi primer menú" );

// Crear la barra de menú
MenuBar miBarra;
miBarra = new MenuBar();

// Crear el primer elemento de la barra
Menu miMenu;
miMenu = new Menu( "Menu" );
//Crear y Agregar la primer opción del primer elemento de la barra
Menu opcion1;
opcion1 = new Menu( "Opcion1" );
opcion1.add( new MenuItem( "primero" ) );
opcion1.add( new MenuItem( "segundo" ) );
miMenu.add( opcion1 );

//Crear y Agregar la segunda opción del primer elemento de la barra
Menu opcion2;
opcion2 = new Menu( "Opcion2" );
opcion2.add( new MenuItem( "primero" ) );
opcion2.add( new MenuItem( "segundo" ) );
miMenu.add( opcion2 );
//Agregar el primer elemento a la barra de menú
miBarra.add( miMenu );
//Colocar la barra
setMenuBar( miBarra );
}

public static void main( String args[] ) {
Frame frame = new ejemplo1();
frame.resize( 250,250 );
frame.show();
}
}

Línea separadora

Es común ver entre las opciones del menú una línea que separa algunas de las opciones de otras. Como en la siguiente imagen se puede ver una línea divisoria entre la “Opción1” y la “Opción2”.




Para agregar la línea divisoria se emplea el método addSeparator aplicado al objeto menú dentro del que se colocará la línea.

miMenu.addSeparator();

La instrucción debe ser colocada antes de la creación de la opción sobre la cual debe aparecer.

No hay comentarios:

Publicar un comentario