Seguidores

MIS WEBS



sábado, 10 de marzo de 2018

PROCESADOR DE TEXTOS CON JAVA CAPITULO 9


Buenos días,

En anteriores ejercicios había reducido el código creando un constructor para genera el JMEnu y JMenuItem. Pero me faltaba poder pasar los iconos de los JMenItem con imágenes incorporada y poner a la escucha a las diferentes partes del menú:

Constructor 1º
1.     El nombre de la variable JMenu que quiero cargar.
2.     El JMenuBar a la que quiero cargar mi JMenu (podría tener varias barras de menú por eso lo hice sí).
3.     El texto que aparecerá 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

Constructor 2º
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 nobres de las variables JMenuItem.
5.     Un array al que cargo los nombres que aparecerán en cada una de mis variables JMenuItem.
6.     Un array al que cargo las imágenes que aparecerán en nuestros JMenuitem (en mi caso los colores ).



import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class reducircodigo {
         public static void main(String[] arg) {
                   Marco123 Marco321= new Marco123();
                   Marco321.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                   Marco321.setVisible(true);
         }
}
class Marco123 extends JFrame{
         public Marco123() {
                   setBounds(400,100,800,500);
                   add(new Lamina2());        
         }
         class Lamina2 extends JPanel{
         public Lamina2() {
                   LAMINA_TEXTO L_text = new LAMINA_TEXTO();
                   LAMINA_BOTONES L_BPT = new LAMINA_BOTONES();
                   LAMINA_BARRA L_BAR = new LAMINA_BARRA();
                   setLayout(new BorderLayout());
                   L_text.setVisible(true);
                   add(L_text, BorderLayout.CENTER);
                   add(L_BPT,BorderLayout.WEST);
                   add(L_BAR,BorderLayout.NORTH);
         }
         class LAMINA_BARRA extends JPanel {
                   public LAMINA_BARRA() {
                            BarraMenu = new JMenuBar();                   
         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");
                            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"}),(new ImageIcon[] {Icono_gris,Icono_blanco,Icono_rojo,Icono_verde}));                   
                            add(BarraMenu);
                   }
                   private 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]);
                                      Items_del_menu[i].addActionListener(new ConstructorDEoyebtes());          
                                      NombreVariableJMenu.add(Items_del_menu[i]);
                            }
                            NombreDeLaBarra.add(NombreVariableJMenu);
                   }       
                   private void constructorJMenu
                   (JMenu NombreVariableJMenu,JMenuBar NombreDeLaBarra,String TextoMostradoJmenu,JMenuItem[]                                                Items_del_menu,String[] SumbmenusInicio,ImageIcon[] foto) {
                            NombreVariableJMenu = new JMenu(TextoMostradoJmenu);                      
                            for (int i =0; i<Items_del_menu.length;i++) {
                                      Items_del_menu[i]= new JMenuItem (SumbmenusInicio[i],foto[i]);
                                      Items_del_menu[i].addActionListener(new ConstructorDEoyebtes());
                                      NombreVariableJMenu.add(Items_del_menu[i]);
                            }
                            NombreDeLaBarra.add(NombreVariableJMenu);
                   }
                   ImageIcon Icono_rojo,Icono_gris,Icono_verde,Icono_blanco;
                   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;
         }
         ///////////////////constructor de oyentes//////////////////////////////
                    private class ConstructorDEoyebtes implements ActionListener {
                        public void actionPerformed(ActionEvent e) {
                            switch(e.getActionCommand()) {
                                      case "NEGRITA":                                                                                                           String Tex_ = Area_texto.getFont().getFamily();
                                               int obten_TamañoLEtra =Area_texto.getFont().getSize();
                                               Area_texto.setFont(new Font(Tex_,Font.BOLD,obten_TamañoLEtra));
                                      break; case "CURSIVA":
                                               Tex_ = Area_texto.getFont().getFamily();
                                               obten_TamañoLEtra =Area_texto.getFont().getSize();
                                               Area_texto.setFont(new Font(Tex_,Font.ITALIC,obten_TamañoLEtra));
                                      break; case "SIN FORMATO":
                                               Tex_ = Area_texto.getFont().getFamily();
                                               obten_TamañoLEtra =Area_texto.getFont().getSize();
                                               Dimension T_letra=Area_texto.getSize();
                                               Area_texto.setFont(new Font(Tex_,Font.PLAIN,obten_TamañoLEtra));
                                      break; case "X 2":
                                               Font F = Area_texto.getFont();
                                               String obten_familiaLetra = F.getFamily();
                                               int  obten_tipoLetra=F.getStyle();
                                               obten_TamañoLEtra =F.getSize()*2;                                                            Area_texto.setFont(new Font(obten_familiaLetra,obten_tipoLetra,obten_TamañoLEtra));                                                                break; case "X 10":
                                               F = Area_texto.getFont();
                                               obten_familiaLetra = F.getFamily();//familia (arial,arial black...)
                                               obten_tipoLetra=F.getStyle();//Estilo (negrita,cursiva,plana...)
                                               obten_TamañoLEtra =F.getSize()*10; //tamaño fuente por 2                                                Area_texto.setFont(new Font(obten_familiaLetra,obten_tipoLetra,obten_TamañoLEtra));
                                      break; case "X 100":
                                               F = Area_texto.getFont();
                                               obten_familiaLetraF.getFamily();
                                               obten_tipoLetra=F.getStyle();
                                               obten_TamañoLEtra =F.getSize()*25;
                        Area_texto.setFont(new Font(obten_familiaLetra,obten_tipoLetra,obten_TamañoLEtra));                             
                                    break; case "/ 2":                                           
                                               F = Area_texto.getFont();
                                               obten_familiaLetra = F.getFamily();
                                               obten_tipoLetra=F.getStyle();
                                               obten_TamañoLEtra =F.getSize()/2;                                                                       Area_texto.setFont(new Font(obten_familiaLetra,obten_tipoLetra,obten_TamañoLEtra));
                                      break; case "/ 10":
                                               F = Area_texto.getFont();
                                               obten_familiaLetra = F.getFamily();
                                               obten_tipoLetra=F.getStyle();
                                               obten_TamañoLEtra =F.getSize()/10;
                         Area_texto.setFont(new Font(obten_familiaLetra,obten_tipoLetra,obten_TamañoLEtra));                                                          break; case "/ 100":
                                               F = Area_texto.getFont();
                                               obten_familiaLetra = F.getFamily();
                                               obten_tipoLetra=F.getStyle();
                                               obten_TamañoLEtra =F.getSize()/25;
                            Area_texto.setFont(new Font(obten_familiaLetra,obten_tipoLetra,obten_TamañoLEtra))  
                                      break; case "BLANCO":
                                               Area_texto.setBackground(Color.WHITE);
                                      break; case "VERDE":
                                               Area_texto.setBackground(Color.green);
                                      break; case "ROJO":
                                               Area_texto.setBackground(Color.red);
                                      break; case "GRIS":
                                               Area_texto.setBackground(Color.LIGHT_GRAY);
                                      break; case "GUARDAR":
                                      break; case "GUARDAR_COMO":
                                      break; case "COPIAR":
                                               TextoEnPantalla = Area_texto.getText();
                                      break; case "PEGAR":
                                               Texto2= Area_texto.getText() + TextoEnPantalla;
                                               Area_texto.setText(Texto2);
                                      break;
                                      }
                                      }//fin action Listener
                   }//fin constructor oyentes
                    private class LAMINA_BOTONES extends JPanel{
                                      public LAMINA_BOTONES() {
                                               Lamina_botones= new JPanel();
                                               Lamina_botones.setLayout(new GridLayout(2,1));
                                               Establece_corte_Linea= new JButton("Set Line Warp");
                                                        Establece_corte_Linea.setBackground(Color.LIGHT_GRAY);
                                               //clase interna anónima parara el metodo Actionlistener del boton
                                                                 Establece_corte_Linea.addActionListener(new ActionListener() {
                                                           public void actionPerformed(ActionEvent e) {
                                                                  boolean saltar =! Area_texto.getLineWrap();
                                                                      Area_texto.setLineWrap(saltar);
                                                                  if (saltar) {
                                                                     Establece_corte_Linea.setText("Quitar SAlto Linea");
                                                                  }else {
                                                                     Establece_corte_Linea.setText("Poner Salto Linea");
                                                                                                                                    }
                                                                                                                 }       
                                                                                                       });
                                               //Creamos un array al que le cargamos las fuentes de nuestro pc
                                                                  String Fuentes_de_mi_pc []=GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames();
                                      //pasamos el array por parametros al combo para cargar los datos
                                                                  Tipo_letra= new JComboBox(Fuentes_de_mi_pc);
                                                                  Tipo_letra.setSize(new Dimension(10,10));
                                                                  Lamina_botones.add(Establece_corte_Linea);
// Creamos una clase interna anónima a la que le indicamos que modifique el tipo texto cuando lo cambiemos
                                                                  //en JComboBox
                            Tipo_letra.addActionListener(new ActionListener() {
                                      public void actionPerformed(ActionEvent e) {
                                               String Tex_ = (String) Tipo_letra.getSelectedItem();
                                               Area_texto.setFont(new Font(Tex_,10,20));
                                                                           }
                                                                  });
                                                                  Lamina_botones.add(Tipo_letra);      
                                               add(Lamina_botones);
                                      }       
                                      private JButton Establece_corte_Linea;
                   }
                   private class LAMINA_TEXTO extends JPanel{
                            public LAMINA_TEXTO() {
                                      Lamina_Texto = new JPanel();
                                      Area_texto= new JTextArea("",25,45);
                                      Area_texto.setLineWrap(true);
                                               Scroll_texto= new JScrollPane(Area_texto);             
                                               Lamina_Texto.add(Scroll_texto);
                                               add(Lamina_Texto);
                            }

                   }
        
         }       
         private JScrollPane Scroll_texto;  
         private JTextArea Area_texto;
         private JComboBox Tipo_letra;
         private JPanel Lamina_barra,Lamina_Texto,Lamina_botones;
         private  String TextoEnPantalla,Texto2;
        
        
}



Espero que os sea útil. Si deseas CONTINUAR

No hay comentarios:

Publicar un comentario

Buscar este blog

Sandisk y Western Digital