Seguidores

MIS WEBS



viernes, 9 de marzo de 2018

PROCESADOR DE TEXTOS CON JAVA CAPITULO 8

CONSTRUCTOR DE MENÚ





En los anteriores artículos os mostré como he creado una aplicación de procesador de textos con java. Me dí cuenta que el código para construir el menú era muy largo y decidí darles vueltas a la cabeza para reducirlo. Pienso que es mejor trabajar una vez y utilizarlo para siempre.

Lo que he hecho es realizar un constructor que crea al que le pasamos por parámetros los JMenu y los JMenuItem y el los agregará a nuestra barra de menú.


El código anterior para crear nuestro menú era el siguiente:



public LAMINA_BARRA() {
                    Lamina_barra= new JPanel();
                    Lamina_barra.setLayout(new FlowLayout(FlowLayout.CENTER,1,0));
                    BARRA = new JMenuBar();    
                           Inicio=             new JMenu("INICIO");
                           COP_PEG=            new JMenu("COP & PEG");
                           tIPO_LETRA=         new JMenu("TIPO LETRA");
                           TAMAÑO_LETRA =      new JMenu("TAMAÑO LETRA");
                           VISTA =             new JMenu("COLOR AREA TEXTO");
                           COPIAR=             new JMenuItem("COPIAR");
                           PEGAR=              new JMenuItem("PEGAR");
                           GUARDAR=            new JMenuItem("GUARDAR");
                           GUARDAR_COMO=       new JMenuItem("GUARDAR COMO");
                           NEGRITA =           new JMenuItem("NEGRITA");
                           CURSIVA =           new JMenuItem("CURSIVA");
                           SIN_FORMATO=        new JMenuItem("SIN FORMATO");
                           POR2   =            new JMenuItem("X 2");
                           POR10  =            new JMenuItem("X 10");
                           POR100  =           new JMenuItem("X 25");
                           ENTRE2 =            new JMenuItem("/ 2");
                           ENTRE10 =           new JMenuItem("/ 10");
                           ENTRE100 =          new JMenuItem("/ 25");
                          
                           BARRA.add(Inicio);
                                          Inicio.add(GUARDAR);
                                          Inicio.add(GUARDAR_COMO);
                                               Inicio.addSeparator();
                                               Inicio.add(COP_PEG);
                                                                   COP_PEG.add(COPIAR);
                                                                   COP_PEG.add(PEGAR);
                           BARRA.add(tIPO_LETRA);
                                              
                                           tIPO_LETRA.add(SIN_FORMATO);
                                          tIPO_LETRA.add(NEGRITA);
                                          tIPO_LETRA.add(CURSIVA);
                           BARRA.add(TAMAÑO_LETRA);
                          
                                           TAMAÑO_LETRA.add(POR2);
                                          TAMAÑO_LETRA.add(POR10);
                                          TAMAÑO_LETRA.add(POR100);      
                                          TAMAÑO_LETRA.add(ENTRE2);
                                          TAMAÑO_LETRA.add(ENTRE10);
                                          TAMAÑO_LETRA.add(ENTRE100);
                           BARRA.add(VISTA);
                                          VISTA.add(GRIS);
                                                    
                                           VISTA.add(BLANCO);
                                                   
                                           VISTA.add(VERDE);
                                                           
                                           VISTA.add(ROJO);
                                                           
                           Lamina_barra.add(BARRA);         
                    add(Lamina_barra);
             }
             private JMenuBar BARRA;
             private JMenu Inicio, tIPO_LETRA,TAMAÑO_LETRA,VISTA,COP_PEG;
             private JMenuItem COPIAR,PEGAR,GUARDAR,GUARDAR_COMO,NEGRITA,CURSIVA,SIN_FORMATO,ENTRE2,ENTRE10,ENTRE100,POR2,POR10,POR100,GRIS,BLANCO,ROJO,VERDE;
             private ImageIcon Icono_rojo,Icono_verde,Icono_gris,Icono_blanco;
       }





Ahora lo he realizado así, he creado un constructor al que le he pasado por parámetros:

  1. El nombre de la variable JMenu que quiero cargar.
  2. El JMenuBar a la que quiero cargar mi JMenu (podria tener varias barras de menú por eso lo hice sí).
  3. El texto que aparecera en cada variable de mis JMenu
  4. Un array al que cargo los nombres de las variables JMenuItem.
  5. Un array al que cargo los nombres que aparecerán en cada una de mis variables JMenuItem


class LAMINA_BARRA extends JPanel {
             public LAMINA_BARRA() {
                   
                    BarraMenu = new JMenuBar();

constructorJMenu
(Inicio,BarraMenu,"Inicio",(new JMenuItem[]  {GUARDAR,GUARDAR_COMO}),(new String[] {"GUARDAR","GUARDAR_COMO"}));


constructorJMenu
(COP_PEG,BarraMenu,"COP_PEG",(new JMenuItem[]  { COPIAR,PEGAR}),(new String[] {"COPIAR","PEGAR"}));


constructorJMenu(
tIPO_LETRA,BarraMenu,"TIPO LETRA",(new JMenuItem[]  { NEGRITA,CURSIVA,SIN_FORMATO}),(new String[] {"NEGRITA","CURSIVA","SIN FORMATO"}));


constructorJMenu
(TAMAÑO_LETRA,BarraMenu,"TAMAÑO_LETRA",(new JMenuItem[]  { ENTRE2,ENTRE10,ENTRE100,POR2,POR10,POR100}),(new String[] {"/ 2","/ 10","/ 100","X 2","X 10", "X 100"}));


constructorJMenu
(VISTA,BarraMenu,"VISTA",(new JMenuItem[]  { GRIS,BLANCO,ROJO,VERDE}),(new String[] {"GRIS","BLANCO","ROJO","VERDE"}));

                    add(BarraMenu);
             }
             public void constructorJMenu (JMenu NombreVariableJMenu,JMenuBar NombreDeLaBarra,String TextoMostradoJmenu,JMenuItem[] Items_del_menu,String[] SumbmenusInicio) {
                    NombreVariableJMenu = new JMenu(TextoMostradoJmenu);
             
                    for (int i =0; i<Items_del_menu.length;i++) {
                           Items_del_menu[i]=  new JMenuItem (SumbmenusInicio[i]);
                           NombreVariableJMenu.add(Items_del_menu[i]);
                    }
                    NombreDeLaBarra.add(NombreVariableJMenu);
             }     
       String SumbmenusInicio[];
       JMenuItem[] Items_del_menu;      
       JMenuBar BarraMenu;
JMenu Inicio,COP_PEG,tIPO_LETRA,TAMAÑO_LETRA,VISTA;  
JMenuItem COPIAR, PEGAR, GUARDAR, GUARDAR_COMO, NEGRITA, CURSIVA, SIN_FORMATO, ENTRE2, ENTRE10, ENTRE100, POR2, POR10, POR100, GRIS, BLANCO, ROJO,VERDE;

       }
}



Se que parece que la diferencia es poca, pero si nuestro menú fuera mucho más grande nos ahorraría una gran cantidad de código y creo que lo hace más legible. Por otra parte, así pongo en practica la creación de métodos constructores a los que les paso por parámetros aquellos objetos que me interesa.


Ahora quiero rehacer todo el ejercicio reduciendo el código. Creo que solo se aprende practicando y cayéndose, espero que mis tropiezos y espero algún acierto os ayuden a aprender.

Muchas gracias a todo el mundo, os deseo paséis un buen día. Si os gusta podéis CONTINUAR

No hay comentarios:

Publicar un comentario

Buscar este blog

Sandisk y Western Digital