Seguidores

MIS WEBS



martes, 6 de marzo de 2018

PROCESADOS DE TEXTOS CON JAVA PARTE 1


Buenos días.

Voy a realizar un ejercicio  en el que tengo que crear un marco, introducirle 3 laminas:

  1. En la parte superior un menú desplegable.
  2. En la zona central campo de texto
  3. En la zona de la izquierda un desplegable al que cargaré todos los tipos de letra que tiene mi ordenador y un botón que establecerá y quitará el salto de línea.

  • He decido poner en practica alguno de los conceptos que he ido aprendiendo por el camino,
  • He generado una clase interna para cada una de las láminas encapsulando así mis laminas dentro de una lámina principal y encapsulando dentro de esta láminas las variables que me harían falta.
  • He cargado las letras de mi ordenador en un array que posteriormente he pasado al constructor del JComboBox.
  • He creado una clase anónima para el botón en la que lo pongo a la escucha y le doy instrucción al mismo tiempo.
  • He jugado con los Layout para conseguir una combinación en el marco.

Espero que os pueda ser útil. Tengo que terminarlo dando funcionalidad al menú y haciendo que modifique el tipo letra, ya lo iré colgando cuando continúe avanzando.









import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;

public class practica3 {

       public static void main(String[] arg) {
            
             MarcO marcO22= new MarcO();
             marcO22.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
             marcO22.setVisible(true);
            
       }

}

class MarcO extends JFrame{
       public MarcO() {
             setBounds(400,100,800,500);
             add(new Lamina());
            
       }
}


class Lamina extends JPanel{
       private class LAMINA_BARRA extends JPanel{
             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("VISTA");
                           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");
                           POR2   =            new JMenuItem("X 2");
                           POR10  =            new JMenuItem("X 10");
                           POR100  =           new JMenuItem("X 100");
                           CINCUENTA=          new JMenuItem("50 %");
                           CIEN=               new JMenuItem("100 %");
                           DOSCIENTOS= new JMenuItem("200 %");
                           TRESCIENTOS= new JMenuItem("300 %");
                          
                          
                          
                          
                           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(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);
                                         
                          
                           BARRA.add(VISTA);
                                          VISTA.add(CINCUENTA);
                                          VISTA.add(CIEN);
                                          VISTA.add(DOSCIENTOS);
                                          VISTA.add(TRESCIENTOS);
                           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,POR2,POR10,POR100,CIEN,DOSCIENTOS,TRESCIENTOS,CINCUENTA;
            
       }
       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 método Actionlistener del botón
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);
                                        Lamina_botones.add(Tipo_letra);  
                          
                           add(Lamina_botones);
                    }     
                    private JButton Establece_corte_Linea;
                    private JComboBox Tipo_letra;
       }
       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);
      
             }

       }
       public Lamina() {
             setLayout(new BorderLayout());
            
             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);
            


                    }

       private JScrollPane Scroll_texto;  
       private JTextArea Area_texto;
      
       private JPanel Lamina_barra,Lamina_Texto,Lamina_botones;
      
     
      
}



Tal y como os dije este es el principio de mi practica, mas adelante iré colgando el resto.
Muchas gracias a todos/as

No hay comentarios:

Publicar un comentario

Buscar este blog

Sandisk y Western Digital