Seguidores

MIS WEBS



Mostrando entradas con la etiqueta JMenu. Mostrar todas las entradas
Mostrando entradas con la etiqueta JMenu. Mostrar todas las entradas

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

jueves, 8 de marzo de 2018

PROCESADOR DE TEXTOS PARTE 5






 En anteriores artículos puse los botones a la escucha para poder modificar el tipo de letra de nuestro cuadro de texto, empece a dar funcionalidad .a la barra del menú, en concreto al tipo letra (negrita,cursiva, normal), Luego le di funcionalidad a copiar y pegar dentro de Inicio.



Ahora dentro del menú tenemos el apartado Vista que tiene los componente (Blanco,rojo, verde, azul), estos componentes modificarán el color de fondo de nuestra área de texto.

                    BARRA.add(VISTA);
                                       VISTA.add(GRIS);//gris
                                       GRIS.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                Area_texto.setBackground(Color.LIGHT_GRAY);
                                                       }
                                                 });
                        VISTA.add(BLANCO);
                BLANCO.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent e) {
                        Area_texto.setBackground(Color.WHITE);
                                                                              }
                                                              
                                                           });
                        VISTA.add(VERDE);
                VERDE.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                Area_texto.setBackground(Color.GREEN);
                                                       }
                                                        
                                                 });
VISTA.add(ROJO);                                                                                                                                                                                                                                                                                                                                     ROJO.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                Area_texto.setBackground(Color.RED);
                                                               }
                                                 });
       
Luego le ponemos unos iconos con los colores



Icono_rojo=new ImageIcon("C:\\Users\\dagip\\Desktop\\ddddddddddd\\src/rojo.gif");
Icono_gris=new ImageIcon("C:\\Users\\dagip\\Desktop\\ddddddddddd\\src/gris.gif");
Icono_verde= new ImageIcon("C:\\Users\\dagip\\Desktop\\ddddddddddd\\src/verde.gif");
Icono_blanco=new ImageIcon("C:\\Users\\dagip\\Desktop\\ddddddddddd\\src/blanco.gif");
GRIS= new JMenuItem("GRIS",Icono_gris);
ROJO= new JMenuItem("ROJO",Icono_rojo);
BLANCO= new JMenuItem("BLANCO",Icono_blanco);
VERDE=   new JMenuItem("VERDE",Icono_verde);








Si te gusta Puedes CONTINUAR



Buscar este blog

Sandisk y Western Digital