7.9 CREACIÓN DE MENÚS

 

Hola a todos de nuevo, ¿qué tal? Para la creación de menús tenemos que manejar tres clases JMenuBarJMenu y JMenuItem. Para la construcción de los menús primero hay que crear una barra o soporte donde se van a crear los menús y para ello instanciamos la clase JMenuBar. Una vez creado la barra de menús habrá que colocar cada uno de los elementos de menú con lo que instanciamos la clase JMenu, una vez construidos los menús para construir los submenús utilizamos la clase JMenuItem.

Para ver todo esto más claro lo hacemos mediante una práctica cuyo código inicial es el siguiente:

package swing;

 

import java.awt.Font;

 

import javax.swing.*;

 

public class EjemploMenu {

 

       public static void main(String[] args) {

           

             MarcoMenu mimarco = new MarcoMenu();

           

             mimarco.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

 

       }

 

}

 class MarcoMenu extends JFrame {

     

       public MarcoMenu(){

           

             setVisible(true);

           

             setBounds(550, 300, 550, 400);

           

             LaminaMenu milamina = new LaminaMenu();

           

             add(milamina);

 

           

       }

}

 class LaminaMenu extends JPanel {

       

        public LaminaMenu() {

             

             

        }

       

 

     

 }

Lo primero es crear la barra donde van a ir colocados los menús instanciamos la clase JMenuBar:

        public LaminaMenu() {

             

            JMenuBar barra = new JMenuBar();

             

        }

Lo siguiente será crear los menús:

public LaminaMenu() {

             

            JMenuBar barra = new JMenuBar();

           

            JMenu archivo = new JMenu("Archivo");

           

            JMenu edicion = new JMenu("Edicion");

           

            JMenu formato = new JMenu("formato");             

        }

Ahora tenemos que agregar los menús a la barra:

public LaminaMenu() {

             

            JMenuBar barra = new JMenuBar();

           

            JMenu archivo = new JMenu("Archivo");

           

            JMenu edicion = new JMenu("Edicion");

           

            JMenu formato = new JMenu("formato");

           

            barra.add(archivo);

           

            barra.add(edicion);

           

            barra.add(formato);

          

        }

Añadimos la barra de menús a la lámina:

public LaminaMenu() {

             

            JMenuBar barra = new JMenuBar();

           

            JMenu archivo = new JMenu("Archivo");

           

            JMenu edicion = new JMenu("Edicion");

           

            JMenu formato = new JMenu("formato");

           

            barra.add(archivo);

           

            barra.add(edicion);

           

            barra.add(formato);

           

            add(barra);

          

        }

Con esto ya tendríamos la barra o el soporte donde van los menús y los menús:



Vamos a crear los submenús, los ítems que cuelgan de los menús, tenemos que instanciar la clase JMenuItem:

        public LaminaMenu() {

             

            JMenuBar barra = new JMenuBar();

           

            JMenu archivo = new JMenu("Archivo");

           

            JMenu edicion = new JMenu("Edicion");

           

            JMenu formato = new JMenu("formato");

           

            JMenuItem abrir = new JMenuItem("Abrir");

           

            JMenuItem guardar = new JMenuItem("Guardar");

           

            JMenuItem copiar = new JMenuItem("Copiar");

           

            JMenuItem cortar = new JMenuItem("Cortar");

           

            JMenuItem generales = new JMenuItem("Generales");

 

            barra.add(archivo);

           

            barra.add(edicion);

           

            barra.add(formato);

           

            add(barra);

          

        }

Añadimos los submenús a los menús correspondientes:

public LaminaMenu() {

             

            JMenuBar barra = new JMenuBar();

           

            JMenu archivo = new JMenu("Archivo");

           

            JMenu edicion = new JMenu("Edicion");

           

            JMenu formato = new JMenu("formato");

           

            JMenuItem abrir = new JMenuItem("Abrir");

           

            JMenuItem guardar = new JMenuItem("Guardar");

           

            JMenuItem copiar = new JMenuItem("Copiar");

           

            JMenuItem cortar = new JMenuItem("Cortar");

           

            JMenuItem generales = new JMenuItem("Generales");

           

            archivo.add(abrir);

           

            archivo.add(guardar);

           

            edicion.add(copiar);

           

            edicion.add(cortar);

           

            formato.add(generales);

 

            barra.add(archivo);

           

            barra.add(edicion);

           

            barra.add(formato);

           

            add(barra);

          

        }

Probamos:



Si pinchamos en cada uno de los menús nos aparecen los submenús.

Vamos a hacer que de un submenú cuelgue a su vez otro submenú, para ello nos creamos un nuevo menú:

public LaminaMenu() {

             

            JMenuBar barra = new JMenuBar();

           

            JMenu archivo = new JMenu("Archivo");

           

            JMenu edicion = new JMenu("Edicion");

           

            JMenu formato = new JMenu("formato");

           

            JMenu opciones = new JMenu("Opciones");

           

            JMenuItem abrir = new JMenuItem("Abrir");

           

            JMenuItem guardar = new JMenuItem("Guardar");

           

            JMenuItem copiar = new JMenuItem("Copiar");

           

            JMenuItem cortar = new JMenuItem("Cortar");

           

            JMenuItem generales = new JMenuItem("Generales");

           

            archivo.add(abrir);

           

            archivo.add(guardar);

           

            edicion.add(copiar);

           

            edicion.add(cortar);

           

            formato.add(generales);

 

            barra.add(archivo);

           

            barra.add(edicion);

           

            barra.add(formato);

           

            add(barra);

          

        }

       

Creamos los submenús:

public LaminaMenu() {

             

            JMenuBar barra = new JMenuBar();

           

            JMenu archivo = new JMenu("Archivo");

           

            JMenu edicion = new JMenu("Edicion");

           

            JMenu formato = new JMenu("formato");

           

            JMenu opciones = new JMenu("Opciones");

           

            JMenuItem abrir = new JMenuItem("Abrir");

           

            JMenuItem guardar = new JMenuItem("Guardar");

           

            JMenuItem copiar = new JMenuItem("Copiar");

           

            JMenuItem cortar = new JMenuItem("Cortar");

           

            JMenuItem generales = new JMenuItem("Generales");

           

            JMenuItem opcion1 = new JMenuItem("Opcion 1");

           

            JMenuItem opcion2 = new JMenuItem("Opcion 2");

       

            archivo.add(abrir);

           

            archivo.add(guardar);

           

            edicion.add(copiar);

           

            edicion.add(cortar);

           

            formato.add(generales);

 

            barra.add(archivo);

           

            barra.add(edicion);

           

            barra.add(formato);

           

            add(barra);

          

        }

Le indicamos que estos dos submenús cuelgan del menú Opciones:

public LaminaMenu() {

             

            JMenuBar barra = new JMenuBar();

           

            JMenu archivo = new JMenu("Archivo");

           

            JMenu edicion = new JMenu("Edicion");

           

            JMenu formato = new JMenu("formato");

           

            JMenu opciones = new JMenu("Opciones");

           

            JMenuItem abrir = new JMenuItem("Abrir");

           

            JMenuItem guardar = new JMenuItem("Guardar");

           

            JMenuItem copiar = new JMenuItem("Copiar");

           

            JMenuItem cortar = new JMenuItem("Cortar");

           

            JMenuItem generales = new JMenuItem("Generales");

           

            JMenuItem opcion1 = new JMenuItem("Opcion 1");

           

            JMenuItem opcion2 = new JMenuItem("Opcion 2");

       

            archivo.add(abrir);

           

            archivo.add(guardar);

           

            edicion.add(copiar);

           

            edicion.add(cortar);

           

            formato.add(generales);

 

            barra.add(archivo);

           

            barra.add(edicion);

           

            barra.add(formato);

           

            opciones.add(opcion1);

           

            opciones.add(opcion2);

   

            add(barra);

          

        }

Y que el menú Opciones cuelgue del menú Edición:

        public LaminaMenu() {

             

            JMenuBar barra = new JMenuBar();

           

            JMenu archivo = new JMenu("Archivo");

           

            JMenu edicion = new JMenu("Edicion");

           

            JMenu formato = new JMenu("formato");

           

            JMenu opciones = new JMenu("Opciones");

           

            JMenuItem abrir = new JMenuItem("Abrir");

           

            JMenuItem guardar = new JMenuItem("Guardar");

           

            JMenuItem copiar = new JMenuItem("Copiar");

           

            JMenuItem cortar = new JMenuItem("Cortar");

           

            JMenuItem generales = new JMenuItem("Generales");

           

            JMenuItem opcion1 = new JMenuItem("Opcion 1");

           

            JMenuItem opcion2 = new JMenuItem("Opcion 2");

       

            archivo.add(abrir);

           

            archivo.add(guardar);

           

            edicion.add(copiar);

           

            edicion.add(cortar);

           

            formato.add(generales);

 

            barra.add(archivo);

           

            barra.add(edicion);

           

            barra.add(formato);

           

            opciones.add(opcion1);

           

            opciones.add(opcion2);

           

            edicion.add(opciones);

   

            add(barra);

          

        }

Probamos:



Si en vez de estar abajo del menú lo queremos arriba esto depende de donde hayamos añadido el submenú Opciones, si lo queremos arriba del todo:

public LaminaMenu() {

             

            JMenuBar barra = new JMenuBar();

           

            JMenu archivo = new JMenu("Archivo");

           

            JMenu edicion = new JMenu("Edicion");

           

            JMenu formato = new JMenu("formato");

           

            JMenu opciones = new JMenu("Opciones");

           

            JMenuItem abrir = new JMenuItem("Abrir");

           

            JMenuItem guardar = new JMenuItem("Guardar");

           

            JMenuItem copiar = new JMenuItem("Copiar");

           

            JMenuItem cortar = new JMenuItem("Cortar");

           

            JMenuItem generales = new JMenuItem("Generales");

           

            JMenuItem opcion1 = new JMenuItem("Opcion 1");

           

            JMenuItem opcion2 = new JMenuItem("Opcion 2");

       

            archivo.add(abrir);

           

            archivo.add(guardar);

           

            edicion.add(opciones);

           

            edicion.add(copiar);

           

            edicion.add(cortar);

           

            formato.add(generales);

 

            barra.add(archivo);

           

            barra.add(edicion);

           

            barra.add(formato);

           

            opciones.add(opcion1);

           

            opciones.add(opcion2);

              

            add(barra);

          

        }

Si probamos de nuevo:



No sé si os habréis fijado en los procesadores de texto en algunos menús aparecen una línea horizontal separando algunos submenús como si fueran grupos, por ejemplo, podríamos poner un separador una línea horizontal debajo del submenú Opciones para indicar que no tienen que ver con los submenús Copiar y Cortar, esto se haría con el método addSeparator(), justo debajo del submenú opciones:

public LaminaMenu() {

             

            JMenuBar barra = new JMenuBar();

           

            JMenu archivo = new JMenu("Archivo");

           

            JMenu edicion = new JMenu("Edicion");

           

            JMenu formato = new JMenu("formato");

           

            JMenu opciones = new JMenu("Opciones");

           

            JMenuItem abrir = new JMenuItem("Abrir");

           

            JMenuItem guardar = new JMenuItem("Guardar");

           

            JMenuItem copiar = new JMenuItem("Copiar");

           

            JMenuItem cortar = new JMenuItem("Cortar");

           

            JMenuItem generales = new JMenuItem("Generales");

           

            JMenuItem opcion1 = new JMenuItem("Opcion 1");

           

            JMenuItem opcion2 = new JMenuItem("Opcion 2");

       

            archivo.add(abrir);

           

            archivo.add(guardar);

           

            edicion.add(opciones);

           

            edicion.addSeparator();

           

            edicion.add(copiar);

           

            edicion.add(cortar);

           

            formato.add(generales);

 

            barra.add(archivo);

           

            barra.add(edicion);

           

            barra.add(formato);

           

            opciones.add(opcion1);

           

            opciones.add(opcion2);

              

            add(barra);

          

        }

Ejecutamos:



Os espero post que desarrollaremos un procesador de textos paso a paso, eso sí, será un procesador básico muy rudimentario pero que aplicaremos muchas de las cosas que ya conocemos. Hasta pronto!

7.8 JSPINNER << >> 7.10 CREACIÓN DE UNPROCESADOR DE TEXTOS



No hay comentarios:

Publicar un comentario