SlideShare una empresa de Scribd logo
Taller de Programación II :: JAVA ::

      Trabajando con Componentes dentro de contenedores
           j            p


        Al fi l d esta presentación el participante será capaz d
           final de t        t ió l       ti i t       á       de:
           Identificar los componente básicos (Label, TextField y
           Button).
           B tt )
           Implementar clases con interfaces WindowListener y
           ActionListener.




                                       Ing.
                                       Ing Manuel Sánchez Chero, MSc
                                                          Chero
                                       manuelsanchezchero@gmail.com
Taller de Programación II :: JAVA ::

     Componentes básicos
          Los componentes básicos Label, TextField
          y Button del paquete AWT:
Taller de Programación II :: JAVA ::
      Componentes básicos
             Label

          Las etiquetas son como los cuadro de textos , salvo
          que el usuario no puede editarlas.
               l      i        d   di   l




        Controles de tipo
        Label.
        L b l




         Se puede utilizar las etiquetas para presentar
         textos que no se pueden editarlas, o como su
         nombre indica para etiquetar otros componentes.
Taller de Programación II :: JAVA ::
      Componentes básicos
             Label

          Este es el diagrama de herencia de la clase Label.




         Los constructores de la clase Label se muestra a
         continuación.
          Constructor
          C t t                        Descripción
                                       D    i ió
          Label( )                     Construye una etiqueta vacía
          Label(String Texto)          Construye una etiqueta con el texto indicado
          Label(String Texto, int      Construye una etiqueta que presenta la cadena
          alineación)                  especificada con la alineación indicada
Taller de Programación II :: JAVA ::
      Componentes básicos
             Label


         Los métodos de la clase Label se muestra a
         continuación.

        Métodos
        Mét d                        Descripción
                                     D    i ió
        String getText ( )           Obtiene el Texto del Label
        void setText(String Texto)   Establece el texto que va en el Label


          El texto de una etiqueta se puede justificar
          pasándole al constructor del Label los campos
          Label.LEFT, Label.CENTER y Label.RIGHT
Taller de Programación II :: JAVA ::
      Componentes básicos
             Label

          Un ejemplo en un applet, utilizando la clase Label,
          con su constructor L b l(S i
                             Label(String T
                                          Texto, i alineación)
                                                 int li   ió )




           Como puede observar en el código (import
                  p                                g     ( p
           java.applet.*), esto indica que es un applet.
Taller de Programación II :: JAVA ::
      Componentes básicos
             TextField

          Los TextField son los componentes básicos de awt,
          para soportar textos.
          Estos componentes gestionan cadena de textos de
          una dimensión
              dimensión.
          Permite visualizar el texto que el usuario escribe.




           Controles     de    tipo
           TextField.
Taller de Programación II :: JAVA ::
      Componentes básicos
             TextField

          Estos componentes puede visualizar una sola línea
          de texto y el usuario puede editarlo, este es el
          diagrama de herencia de la clase TextField.




         Los constructores de la clase TextField se muestra
         a continuación.
          Constructor
          C t t                         Descripción
                                        D    i ió
          TextField()                   Construye un cuadro de Texto
          TextField(int Columnas)       Construye un cuadro de texto vacio con el número de
                                        columnas indicadas
          TextField(String Texto)       Construye un cuadro de texto con el texto indicado
          TextField(String Texto, int
                   (S                   Construye un cuadro de texto con el texto indicado y
                                        C
          Columnas)                     con el número de columnas indicadas
Taller de Programación II :: JAVA ::
      Componentes básicos
             TextField


         Los métodos de la clase TextField se muestra a
         continuación.

        Métodos
        Mét d                           Descripción
                                        D    i ió
        void addActionListener          Añade el ActionListener indicado para recibir
        (ActionListener)                eventos
        int getColumns()                Obtiene el número de columnas del TextField

        void setColumns(int columnas)
                       (            )   Establece el número de columnas del TextField
        void setText(String Texto)      Establece el texto que va en el TextField
Taller de Programación II :: JAVA ::
      Componentes básicos
             TextField

          Un ejemplo, utilizando la clase TextField, con sus
          constructores y el ActionListener.




                                          Palabra reservada this
                                                             this,
                                          es    útil  para  hacer
                                          referencial   al objeto
                                          actual, en este caso al
                                          Frame.


                                          Cuando       el    usuario
                                          ingresa
                                            g        texto   en   el
                                          primer      TextField    y
                                          presiona enter pasa el
                                          focus      al     segundo
                                          TextField.
Taller de Programación II :: JAVA ::
      Componentes básicos
             Botones

          Los botones proporcionan al usuario una forma de
          iniciar alguna acción.
          i i i    l        ió




                   Controles    de
                   tipo Button.




         Todo usuario de GUI está familiarizado con los
         botones, esos controles elementales sobre los que
         se hace clic para indicar a un programa que debe
         empezar a realizar alguna acción
                                   acción.
Taller de Programación II :: JAVA ::
      Componentes básicos
             Botones

          Los botones están soportado en la clase
          java.awt.Button, esta es l j
          j        B               la jerarquía d l clase.
                                             í de la l




         Los constructores de la clase Button se muestra a
         continuación.

              Constructor               Descripción
              Button
              B tt                      Construye un botón sin etiqueta
                                        C t          b tó i ti t
              Button(String Etiqueta)   Construye un botón con etiqueta
Taller de Programación II :: JAVA ::
      Componentes básicos
             Botones

          Un ejemplo, utilizando la clase Button, con sus
          constructores en un applet.
                                 l
Taller de Programación II :: JAVA ::
      Componentes básicos
             Botones

          Para gestionar los eventos de los botones se usa la
          interfaz A i Li
          i     f   ActionListener, esta i
                                         interfaz tiene como
                                              f    i
          único método actionPerformed, al que se le pasa
          un objeto a la clase ActionEvent cuando se hace
          clic sobre el b tó
            li    b   l botón.

                ActionListener




       Método                                   Descripción
       void addActionListener(ActionListener)   Añade el ActionListener     indicado para
                                                recibir eventos del botón
       String getActionCommand( )               Obtiene el comando del evento producido
                                                p
                                                por el botón.
Taller de Programación II :: JAVA ::
     Componentes básicos
            Botones


            Este es el diagrama de la herencia de la clase
                          g
            ActionEvent.




             Todos los métodos de la clase ActionEvent, se
             muestran a continuación.

       Método                          Descripción
       String getActionCommand( )      Obtiene la cadena del comando
       String paramString( )           Obtiene una cadena que identifica el evento.
Taller de Programación II :: JAVA ::
      Componentes básicos
             Botones

      Implementando una clase BotonesConColores de tipo Frame he
      implementando la interfaz ActionListener.
Taller de Programación II :: JAVA ::
      Componentes básicos
             Botones

      Hay dos formas para determinar qué botón se seleccionó, usando el
      método getSource y usando comando.




Primero,    veremos
cómo se hace esto
con getSource, he
aquí un ejemplo.
Taller de Programación II :: JAVA ::
      Componentes básicos
             Botones
       También se puede obtener el comando para el botón sobre el que se
       hizo clic, usando el método getActionCommand




Veremos cómo se
hace     esto   con
getActionCommand,
he aquí un ejemplo.
Taller de Programación II :: JAVA ::
      Componentes básicos
             Actividad

                Realizar la siguiente interfaz gráfica, que permita ingresar
                dos número y mostrar el resultado al hacer clic en el botón
                      ú                                                   ó
                Calcular




                                                 clic




         Sugerencias
            Importar el paquete java.awt.*
            Utilizar herencias extends Frame.
            Implementar los Listener ActionListener y WindowListener
Taller de Programación II :: JAVA ::
       Componentes básicos
              Solución
       Realizar los siguientes pasos:
          Crear la Clase Sumar que herede la Clase Frame
          Implementar
          Implementa las inte faces ActionListene y Windo Listene
                         interfaces ActionListener WindowListener
          Implementar el método main y su constructor.

   package ClasesGraficas;
   import java.awt.*;
   import java.awt.event.*;
   public class Sumar extends Frame implements WindowListener, ActionListener {
                                                                                    Método
               p
               public Sumar()     { }
                                                                                  Constructor

               public   void   windowActivated(WindowEvent arg0) { }
               public   void   windowClosed(WindowEvent arg0) { }               Métodos
               public   void   windowClosing(WindowEvent arg0) { }           Implementados
                                                                                  por
               public
                 bli    void
                          id   windowDeactivated(WindowEvent arg0) { }
                                i d       i    d( i d           0)
                                                                             WindowListener
               public   void   windowDeiconified(WindowEvent arg0) { }
               public   void   windowIconified(WindowEvent arg0) { }
               public   void   windowOpened(WindowEvent arg0) { }                Método
                                                                            Implementado p
                                                                               p           por
               public void actionPerformed(ActionEvent arg0) {      }         ActionListener

               public static void main(String[] args) { }                         Método main
   }
Taller de Programación II :: JAVA ::
       Componentes básicos
              Solución

       Realizar los siguientes pasos:
         Declarar los objetos en la clase



   package ClasesGraficas;
   import java.awt.*;
   import java.awt.event.*;
   public class Sumar extends Frame implements WindowListener, ActionListener {


              Label lblvalor1=new Label( Numero 1");
                                    Label("Numero 1 );
              Label lblvalor2=new Label("Numero 2");
              Label lblresultado=new Label("Resultado");
              TextField txtvalor1=new TextField();
                                               ();
                                                                              Declaración de
                                                                              D l      ió d
              TextField txtvalor2=new TextField();                             Objetos en la
              TextField txtresultado=new TextField();                              clase
              Button cmdlimpiar=new Button("Limpiar");
              Button cmdcalcular=new Button("Calcular");
                                        Button( Calcular );
              Button cmdcerrar=new Button("Cerrar");

   }
Taller de Programación II :: JAVA ::
      Componentes básicos
             Solución
         Ir al método constructor y escribir el siguiente código

            public Sumar() {
                               super("Operaciones");
                               setLayout(null);
                               setBackground(Color.lightGray);
                               setSize(300,150);
                               show();
                               addWindowListener(this);
                                ddWi d Li t       (thi )
                               lblvalor1.setBounds(20,40,60,20);
                               txtvalor1.setBounds(90,40,60,20);
                               lblvalor2.setBounds(20,65,60,20);
                               txtvalor2.setBounds(90,65,60,20);
                               lblresultado.setBounds(20,90,60,20);
                               lblresultado setBounds(20 90 60 20);
                               txtresultado.setBounds(90,90,60,20);
                                                                       Código dentro del
                               cmdlimpiar.setBounds(160,40,60,20);
                                                                      método constructor
                               cmdcalcular.setBounds(160,65,60,20);
                               cmdcerrar.setBounds(160,90,60,20);
                               add(lblvalor1);
                               add(txtvalor1);
                               add(lblvalor2);
                               add(txtvalor2);
                               add(lblresultado);
                               txtresultado.setEnabled(false);
                               txtresultado setEnabled(false);
                               add(txtresultado);
                               add(cmdlimpiar);
                               cmdlimpiar.addActionListener(this);
                               add(cmdcalcular);
                               cmdcalcular.addActionListener(this);
                               add(cmdcerrar);
                               cmdcerrar.addActionListener(this);

                               }
Taller de Programación II :: JAVA ::
      Componentes básicos
             Solución

            public Sumar() {
                      super( Operaciones );
                      super("Operaciones");
                      setLayout(null);
                      setBackground(Color.lightGray);
                      setSize(300,150);
                      show();
                      addWindowListener(this);
            }

        Descripción del Código
          Se llama al método super del constructor para ponerle un título al
          Frame.
          Se utiliza un gestor de esquema para poder poner los componentes
          en diferente ubicación para ello se utiliza setLayout(null).
          Para    colocar     un    determinado         color   de   fondo   se   utiliza
          setBackground(Color.lightGray).
            tB k      d(C l li htG )
          Para determinar el tamaño del frame, se utiliza setSize(300,150).
          Para mostrar el Frame, se utiliza show().
          Y por último indicamos que el Frame pueda escuchar los eventos con
          el método addWindowListener(this).
Taller de Programación II :: JAVA ::
      Componentes básicos
             Solución



   public Sumar() {
             lblvalor1.setBounds(20,40,60,20);
             txtvalor1.setBounds(90,40,60,20);
             lblvalor2.setBounds(20,65,60,20);
             txtvalor2.setBounds(90,65,60,20);
             lblresultado.setBounds(20,90,60,20);
             txtresultado.setBounds(90,90,60,20);
             txtresultado setBounds(90 90 60 20);
             cmdlimpiar.setBounds(160,40,60,20);
             cmdcalcular.setBounds(160,65,60,20);
             cmdcerrar.setBounds(160,90,60,20);
   }



      Descripción del Código
         Antes de mostrar los componentes utilizamos el método setBounds, para
         fijar la posición y tamaño de los componentes dentro del frame.
         void java.awt.Component.setBounds(int x, int y, int ancho, int altura)
Taller de Programación II :: JAVA ::
      Componentes básicos
             Solución
     public Sumar() {
                 ….
                 …..
                 add(lblvalor1);
                 add(txtvalor1);
                 add(lblvalor2);
                 add(txtvalor2);
                 add(lblresultado);
                 txtresultado.setEnabled(false);
                 add(txtresultado);
                 add(cmdlimpiar);
                 cmdlimpiar.addActionListener(this);          Se le da la funcionalidad a
                 add(cmdcalcular);                               los botones para que
                 cmdcalcular.addActionListener(this);           escuche los eventos y
                                                                    adicionamos los
                 add(cmdcerrar);                                componentes al frame
                 cmdcerrar.addActionListener(this);
     }


      Descripción del Código
         Después de haber fijado la posición y tamaño de los componentes dentro
         del frame, se procede adicionarlos para ser mostrados add(componente)
         Para    que    los     Botones      escuchen   los    eventos      se     utiliza
         cmdlimpiar.addActionListener(this);
Taller de Programación II :: JAVA ::
      Componentes básicos
             Solución
         Ir al método actionPerformed y escribir el siguiente código
       public void actionPerformed(ActionEvent e) {
                    double 1 0 2 0 0
                    d bl v1=0,v2=0,r=0;
                    if(e.getSource()==cmdlimpiar){
                      txtvalor1.setText("");
                      txtvalor2.setText("");
                      txtresultado.setText("");
                      txtresultado setText("");
                      txtvalor1.requestFocus();           }

                   if(e.getSource()==cmdcalcular){
                   v1=Double.valueOf(txtvalor1.getText()).doubleValue();
                   v1=Double valueOf(txtvalor1 getText()) doubleValue();           Código para el botón
                   v2=Double.valueOf(txtvalor2.getText()).doubleValue();        cmdcalcular, para mostrar el
                   r=v1+v2;                                                      resultado de la operación
                                                                                         realizada
                   txtresultado.setText(Double.toString(r)); }

                   if(e.getSource()==cmdcerrar){
                    System.exit(0);         }
                   }

      Descripción del Código
         Pregunta por el nombre del objeto.
         Convierte            una            cadena            a           un   valor       double.
                                                                                            double
         v1=Double.valueOf(txtvalor1.getText()).doubleValue();
         Muestra el Resultado txtresultado.setText(Double.toString(r));
Taller de Programación II :: JAVA ::
      Componentes básicos
             Solución
     public void windowClosing(WindowEvent e) {
                          System.exit(0);
                 }



     public static void main(String[] args) {
       bli t ti      id i (St i []        )
                 Sumar frmsuma= new Sumar( ); }
     }
                                                                        Creación de un objeto
                                                                       frmsuma de tipo Sumar


      Descripción del Código

         Ir al método windowClosing para indicarle al frame que cuando se haga clic en el boton , se
         debe cerrar .
         Y por último crear el objeto frmsuma en el método main,
         Sumar frmsuma= new Sumar( );

           Nota :
               Se adjunta el código completo de la Clase Sumar, el
               participante puede importar dicha clase.
Taller de Programación II :: JAVA ::




                                       Muy bien, hemos aprendido a
                                       utilizar los componentes Label,
                                       TextField y Button y su
                                       implementación       de     los
                                       Listener, ahora inténtalo en tu
                                       computador.
                                       computador


                                       Recuerda que puedes ver este
                                       tutorial las veces que deseas.

                                       FELICITACIONES!!
                                           C   CO S
Taller de Programación II :: JAVA ::

     Créditos




                                       CREDITOS

                         Este tutorial fue realizado y
                         editado por:

                           Manuel Jesús Sánchez Chero
                           Tutor Virtual de Educación a
                                     Distancia
                                  Chiclayo - Perú
                                    Versión 1.0

Más contenido relacionado

La actualidad más candente

JDBC MONOGRAFIA
JDBC MONOGRAFIAJDBC MONOGRAFIA
JDBC MONOGRAFIA
Sefira111
 
diagrama de colaboracion
diagrama de colaboraciondiagrama de colaboracion
diagrama de colaboracion
still01
 

La actualidad más candente (20)

Elementos Swing
Elementos SwingElementos Swing
Elementos Swing
 
Comandos java
Comandos javaComandos java
Comandos java
 
Tópicos Avanzados de Programación - Unidad 2 componentes y librerias
Tópicos Avanzados de Programación - Unidad 2 componentes y libreriasTópicos Avanzados de Programación - Unidad 2 componentes y librerias
Tópicos Avanzados de Programación - Unidad 2 componentes y librerias
 
Calculadora con operaciones básicas en java
Calculadora con operaciones básicas en javaCalculadora con operaciones básicas en java
Calculadora con operaciones básicas en java
 
Programación 3: listas enlazadas
Programación 3: listas enlazadasProgramación 3: listas enlazadas
Programación 3: listas enlazadas
 
Conceptos Unidad 1 Lenguajes Automatas Introducción a la Teoría de Lenguaje...
Conceptos Unidad 1 Lenguajes Automatas Introducción  a  la Teoría de Lenguaje...Conceptos Unidad 1 Lenguajes Automatas Introducción  a  la Teoría de Lenguaje...
Conceptos Unidad 1 Lenguajes Automatas Introducción a la Teoría de Lenguaje...
 
Modelo entidad
Modelo entidadModelo entidad
Modelo entidad
 
Topicos Avanzados de Programacion - Unidad 4 programacion concurrente
Topicos Avanzados de Programacion - Unidad 4 programacion concurrenteTopicos Avanzados de Programacion - Unidad 4 programacion concurrente
Topicos Avanzados de Programacion - Unidad 4 programacion concurrente
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
Topicos avanzados de programacion
Topicos avanzados de programacionTopicos avanzados de programacion
Topicos avanzados de programacion
 
investigacion topicos avanzados de programacion unidad dos interfaz grafica
investigacion topicos avanzados de programacion unidad dos interfaz graficainvestigacion topicos avanzados de programacion unidad dos interfaz grafica
investigacion topicos avanzados de programacion unidad dos interfaz grafica
 
Procesos e Hilos en los Sistemas Operativos
Procesos e Hilos en los Sistemas OperativosProcesos e Hilos en los Sistemas Operativos
Procesos e Hilos en los Sistemas Operativos
 
SO Unidad 2: Mecanismos de comunicación y sincronización de procesos
SO Unidad 2: Mecanismos de comunicación y sincronización de procesosSO Unidad 2: Mecanismos de comunicación y sincronización de procesos
SO Unidad 2: Mecanismos de comunicación y sincronización de procesos
 
Administracion de usuarios y grupos
Administracion de usuarios y gruposAdministracion de usuarios y grupos
Administracion de usuarios y grupos
 
JDBC MONOGRAFIA
JDBC MONOGRAFIAJDBC MONOGRAFIA
JDBC MONOGRAFIA
 
diagrama de colaboracion
diagrama de colaboraciondiagrama de colaboracion
diagrama de colaboracion
 
Tipos de listas en estructura de datos
Tipos de listas en estructura de datosTipos de listas en estructura de datos
Tipos de listas en estructura de datos
 
Listas como estructura de datos..
Listas como estructura de datos..Listas como estructura de datos..
Listas como estructura de datos..
 
Arboles Binarios
Arboles BinariosArboles Binarios
Arboles Binarios
 
Modelo Orientado A Objetos
Modelo Orientado A ObjetosModelo Orientado A Objetos
Modelo Orientado A Objetos
 

Destacado

Tópicos avanzados de programación eventos
Tópicos  avanzados  de programación   eventosTópicos  avanzados  de programación   eventos
Tópicos avanzados de programación eventos
Kanddy Mobylml
 
Cuadro comparativo de herramientas de programacion eclipse, java
Cuadro comparativo de herramientas de programacion eclipse, javaCuadro comparativo de herramientas de programacion eclipse, java
Cuadro comparativo de herramientas de programacion eclipse, java
CCCRiis
 
4.guia modelo relacional
4.guia modelo relacional4.guia modelo relacional
4.guia modelo relacional
Zulma Bautista
 
Interfaces visuales
Interfaces visualesInterfaces visuales
Interfaces visuales
infobran
 
CreacióN De Una Interfaz GráFica Del Usuario(Gui)
CreacióN De Una Interfaz GráFica Del Usuario(Gui)CreacióN De Una Interfaz GráFica Del Usuario(Gui)
CreacióN De Una Interfaz GráFica Del Usuario(Gui)
Arturo Salinas
 
Java GUI La librería Swing
Java GUI La librería Swing Java GUI La librería Swing
Java GUI La librería Swing
Laura
 

Destacado (20)

LibreríAs De Java
LibreríAs De JavaLibreríAs De Java
LibreríAs De Java
 
Java beans
Java beansJava beans
Java beans
 
Java.sql.*
Java.sql.*Java.sql.*
Java.sql.*
 
Tópicos avanzados de programación eventos
Tópicos  avanzados  de programación   eventosTópicos  avanzados  de programación   eventos
Tópicos avanzados de programación eventos
 
Cuadro comparativo de herramientas de programacion eclipse, java
Cuadro comparativo de herramientas de programacion eclipse, javaCuadro comparativo de herramientas de programacion eclipse, java
Cuadro comparativo de herramientas de programacion eclipse, java
 
Tópicos Avanzados de Programación - Unidad 3 programacion concurrente
Tópicos Avanzados de Programación - Unidad 3 programacion concurrenteTópicos Avanzados de Programación - Unidad 3 programacion concurrente
Tópicos Avanzados de Programación - Unidad 3 programacion concurrente
 
9.herencia en java
9.herencia en java9.herencia en java
9.herencia en java
 
4.guia modelo relacional
4.guia modelo relacional4.guia modelo relacional
4.guia modelo relacional
 
CMMI
CMMICMMI
CMMI
 
Windows presentation foundation (wpf)
Windows presentation foundation (wpf)Windows presentation foundation (wpf)
Windows presentation foundation (wpf)
 
Interfaces visuales
Interfaces visualesInterfaces visuales
Interfaces visuales
 
inv unidad 1 topicos avanzados de programacion
inv unidad 1 topicos avanzados de programacioninv unidad 1 topicos avanzados de programacion
inv unidad 1 topicos avanzados de programacion
 
GUI historia y evolucion (Hasta el 2008)
GUI historia y evolucion (Hasta el 2008)GUI historia y evolucion (Hasta el 2008)
GUI historia y evolucion (Hasta el 2008)
 
Hilos En Java
Hilos En JavaHilos En Java
Hilos En Java
 
History of Human-Computer Interaction
History of Human-Computer InteractionHistory of Human-Computer Interaction
History of Human-Computer Interaction
 
CreacióN De Una Interfaz GráFica Del Usuario(Gui)
CreacióN De Una Interfaz GráFica Del Usuario(Gui)CreacióN De Una Interfaz GráFica Del Usuario(Gui)
CreacióN De Una Interfaz GráFica Del Usuario(Gui)
 
Unidad 2 tópicos avanzados de programacion
Unidad 2 tópicos avanzados de programacionUnidad 2 tópicos avanzados de programacion
Unidad 2 tópicos avanzados de programacion
 
Componentes en-poo
Componentes en-pooComponentes en-poo
Componentes en-poo
 
Componentes de eclipse
Componentes de eclipseComponentes de eclipse
Componentes de eclipse
 
Java GUI La librería Swing
Java GUI La librería Swing Java GUI La librería Swing
Java GUI La librería Swing
 

Similar a Sesion12-componentes Visuales java

Java class library
Java class libraryJava class library
Java class library
LCA
 
Interface-swt-swing.pptx
Interface-swt-swing.pptxInterface-swt-swing.pptx
Interface-swt-swing.pptx
Anabelparra3
 
Guia practica funciones en java con NetBeans
Guia practica funciones en java con NetBeansGuia practica funciones en java con NetBeans
Guia practica funciones en java con NetBeans
Emerson Garay
 

Similar a Sesion12-componentes Visuales java (20)

Sesion12-Componentes AWT
Sesion12-Componentes AWTSesion12-Componentes AWT
Sesion12-Componentes AWT
 
Java class library
Java class libraryJava class library
Java class library
 
Semana 4 Interfaces gráficas.pdf
Semana 4 Interfaces gráficas.pdfSemana 4 Interfaces gráficas.pdf
Semana 4 Interfaces gráficas.pdf
 
Sesión5 applets
Sesión5 appletsSesión5 applets
Sesión5 applets
 
Interface-swt-swing.pptx
Interface-swt-swing.pptxInterface-swt-swing.pptx
Interface-swt-swing.pptx
 
Tutojava
TutojavaTutojava
Tutojava
 
Sesion10 Interfaces Graficas Usuarios - java
Sesion10 Interfaces Graficas Usuarios - javaSesion10 Interfaces Graficas Usuarios - java
Sesion10 Interfaces Graficas Usuarios - java
 
Librería swing java
Librería swing javaLibrería swing java
Librería swing java
 
Vb Leccion1
Vb Leccion1Vb Leccion1
Vb Leccion1
 
Unidad de aprendizaje caldad
Unidad de aprendizaje caldadUnidad de aprendizaje caldad
Unidad de aprendizaje caldad
 
Clase swing
Clase swingClase swing
Clase swing
 
Material de apoyo applet
Material de apoyo appletMaterial de apoyo applet
Material de apoyo applet
 
Programacion1
Programacion1Programacion1
Programacion1
 
Informe programación Elimenez gonzalez
Informe programación Elimenez gonzalezInforme programación Elimenez gonzalez
Informe programación Elimenez gonzalez
 
Clase swing
Clase swingClase swing
Clase swing
 
2012 interfaz grafica en guide matlab
2012 interfaz grafica en guide matlab2012 interfaz grafica en guide matlab
2012 interfaz grafica en guide matlab
 
Guia practica funciones en java con NetBeans
Guia practica funciones en java con NetBeansGuia practica funciones en java con NetBeans
Guia practica funciones en java con NetBeans
 
Visual basic .NET
Visual basic .NETVisual basic .NET
Visual basic .NET
 
Presentation Oop
Presentation OopPresentation Oop
Presentation Oop
 
oop
oopoop
oop
 

Más de Universidad Nacional de Frontera

Más de Universidad Nacional de Frontera (20)

Modelo renovacionlicenciamiento
Modelo renovacionlicenciamientoModelo renovacionlicenciamiento
Modelo renovacionlicenciamiento
 
Semana3 2 objetivos_justificacion_ejemplos
Semana3 2 objetivos_justificacion_ejemplosSemana3 2 objetivos_justificacion_ejemplos
Semana3 2 objetivos_justificacion_ejemplos
 
Modulo2 tema 3-lenguaje sql-ddl
Modulo2 tema 3-lenguaje sql-ddlModulo2 tema 3-lenguaje sql-ddl
Modulo2 tema 3-lenguaje sql-ddl
 
Socote2013 submission 120
Socote2013 submission 120Socote2013 submission 120
Socote2013 submission 120
 
Articulo modelo matematico_sistemamedicion
Articulo modelo matematico_sistemamedicionArticulo modelo matematico_sistemamedicion
Articulo modelo matematico_sistemamedicion
 
Articulo revista uss
Articulo revista ussArticulo revista uss
Articulo revista uss
 
Actividad lineas investigacion
Actividad lineas investigacionActividad lineas investigacion
Actividad lineas investigacion
 
Programacion kitlegontx java
Programacion kitlegontx javaProgramacion kitlegontx java
Programacion kitlegontx java
 
Trabajo Final - Ambiente de Aprendizaje FACHSE
Trabajo Final - Ambiente de Aprendizaje FACHSETrabajo Final - Ambiente de Aprendizaje FACHSE
Trabajo Final - Ambiente de Aprendizaje FACHSE
 
Ple proyecto
Ple proyectoPle proyecto
Ple proyecto
 
Realidad aumentada swl
Realidad aumentada swlRealidad aumentada swl
Realidad aumentada swl
 
Moodle2 0
Moodle2 0Moodle2 0
Moodle2 0
 
Java Gestion Eventos
Java Gestion EventosJava Gestion Eventos
Java Gestion Eventos
 
Software Libre en la Educación
Software Libre en la EducaciónSoftware Libre en la Educación
Software Libre en la Educación
 
Como Documentar Casos De Uso
Como Documentar Casos De UsoComo Documentar Casos De Uso
Como Documentar Casos De Uso
 
Modelo Requistos
Modelo RequistosModelo Requistos
Modelo Requistos
 
Utilizando Metodologia Rup Parte1
Utilizando Metodologia Rup Parte1Utilizando Metodologia Rup Parte1
Utilizando Metodologia Rup Parte1
 
Prueba de Confiabilidad del Software
Prueba de Confiabilidad del SoftwarePrueba de Confiabilidad del Software
Prueba de Confiabilidad del Software
 
Instalacion So
Instalacion SoInstalacion So
Instalacion So
 
Software Libre
Software LibreSoftware Libre
Software Libre
 

Último

PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docxPRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
encinasm992
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
raquelariza02
 

Último (20)

Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
 
Herramientas informáticas. Sara Torres R.
Herramientas informáticas. Sara Torres R.Herramientas informáticas. Sara Torres R.
Herramientas informáticas. Sara Torres R.
 
Presentacion y Extension de tema para Blogger.pptx
Presentacion y Extension de tema para Blogger.pptxPresentacion y Extension de tema para Blogger.pptx
Presentacion y Extension de tema para Blogger.pptx
 
HerramientasInformaticas ¿Que es? - ¿Para que sirve? - Recomendaciones - Comp...
HerramientasInformaticas ¿Que es? - ¿Para que sirve? - Recomendaciones - Comp...HerramientasInformaticas ¿Que es? - ¿Para que sirve? - Recomendaciones - Comp...
HerramientasInformaticas ¿Que es? - ¿Para que sirve? - Recomendaciones - Comp...
 
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docxPRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
manual-de-oleohidraulica-industrial-vickers.pdf
manual-de-oleohidraulica-industrial-vickers.pdfmanual-de-oleohidraulica-industrial-vickers.pdf
manual-de-oleohidraulica-industrial-vickers.pdf
 
¡Mira mi nuevo diseño hecho en Canva!.pdf
¡Mira mi nuevo diseño hecho en Canva!.pdf¡Mira mi nuevo diseño hecho en Canva!.pdf
¡Mira mi nuevo diseño hecho en Canva!.pdf
 
Sistemas distribuidos de redes de computadores en un entorno virtual de apren...
Sistemas distribuidos de redes de computadores en un entorno virtual de apren...Sistemas distribuidos de redes de computadores en un entorno virtual de apren...
Sistemas distribuidos de redes de computadores en un entorno virtual de apren...
 
Inteligencia Artificial para usuarios nivel inicial
Inteligencia Artificial para usuarios nivel inicialInteligencia Artificial para usuarios nivel inicial
Inteligencia Artificial para usuarios nivel inicial
 
Licencias para el Uso y el Desarrollo de Software
Licencias para el Uso y el Desarrollo de SoftwareLicencias para el Uso y el Desarrollo de Software
Licencias para el Uso y el Desarrollo de Software
 
HIGADO Y TRAUMA HEPATICO UDABOL 2024 (3).pdf
HIGADO  Y TRAUMA HEPATICO UDABOL 2024 (3).pdfHIGADO  Y TRAUMA HEPATICO UDABOL 2024 (3).pdf
HIGADO Y TRAUMA HEPATICO UDABOL 2024 (3).pdf
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
 
proyectos_social_y_socioproductivos _mapas_conceptuales
proyectos_social_y_socioproductivos _mapas_conceptualesproyectos_social_y_socioproductivos _mapas_conceptuales
proyectos_social_y_socioproductivos _mapas_conceptuales
 
Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdf
 
Unidad 1- Historia y Evolucion de las computadoras.pdf
Unidad 1- Historia y Evolucion de las computadoras.pdfUnidad 1- Historia y Evolucion de las computadoras.pdf
Unidad 1- Historia y Evolucion de las computadoras.pdf
 
Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestre
 
herramientas informaticas mas utilizadas
herramientas informaticas mas utilizadasherramientas informaticas mas utilizadas
herramientas informaticas mas utilizadas
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
 
3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx
3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx
3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx
 

Sesion12-componentes Visuales java

  • 1. Taller de Programación II :: JAVA :: Trabajando con Componentes dentro de contenedores j p Al fi l d esta presentación el participante será capaz d final de t t ió l ti i t á de: Identificar los componente básicos (Label, TextField y Button). B tt ) Implementar clases con interfaces WindowListener y ActionListener. Ing. Ing Manuel Sánchez Chero, MSc Chero manuelsanchezchero@gmail.com
  • 2. Taller de Programación II :: JAVA :: Componentes básicos Los componentes básicos Label, TextField y Button del paquete AWT:
  • 3. Taller de Programación II :: JAVA :: Componentes básicos Label Las etiquetas son como los cuadro de textos , salvo que el usuario no puede editarlas. l i d di l Controles de tipo Label. L b l Se puede utilizar las etiquetas para presentar textos que no se pueden editarlas, o como su nombre indica para etiquetar otros componentes.
  • 4. Taller de Programación II :: JAVA :: Componentes básicos Label Este es el diagrama de herencia de la clase Label. Los constructores de la clase Label se muestra a continuación. Constructor C t t Descripción D i ió Label( ) Construye una etiqueta vacía Label(String Texto) Construye una etiqueta con el texto indicado Label(String Texto, int Construye una etiqueta que presenta la cadena alineación) especificada con la alineación indicada
  • 5. Taller de Programación II :: JAVA :: Componentes básicos Label Los métodos de la clase Label se muestra a continuación. Métodos Mét d Descripción D i ió String getText ( ) Obtiene el Texto del Label void setText(String Texto) Establece el texto que va en el Label El texto de una etiqueta se puede justificar pasándole al constructor del Label los campos Label.LEFT, Label.CENTER y Label.RIGHT
  • 6. Taller de Programación II :: JAVA :: Componentes básicos Label Un ejemplo en un applet, utilizando la clase Label, con su constructor L b l(S i Label(String T Texto, i alineación) int li ió ) Como puede observar en el código (import p g ( p java.applet.*), esto indica que es un applet.
  • 7. Taller de Programación II :: JAVA :: Componentes básicos TextField Los TextField son los componentes básicos de awt, para soportar textos. Estos componentes gestionan cadena de textos de una dimensión dimensión. Permite visualizar el texto que el usuario escribe. Controles de tipo TextField.
  • 8. Taller de Programación II :: JAVA :: Componentes básicos TextField Estos componentes puede visualizar una sola línea de texto y el usuario puede editarlo, este es el diagrama de herencia de la clase TextField. Los constructores de la clase TextField se muestra a continuación. Constructor C t t Descripción D i ió TextField() Construye un cuadro de Texto TextField(int Columnas) Construye un cuadro de texto vacio con el número de columnas indicadas TextField(String Texto) Construye un cuadro de texto con el texto indicado TextField(String Texto, int (S Construye un cuadro de texto con el texto indicado y C Columnas) con el número de columnas indicadas
  • 9. Taller de Programación II :: JAVA :: Componentes básicos TextField Los métodos de la clase TextField se muestra a continuación. Métodos Mét d Descripción D i ió void addActionListener Añade el ActionListener indicado para recibir (ActionListener) eventos int getColumns() Obtiene el número de columnas del TextField void setColumns(int columnas) ( ) Establece el número de columnas del TextField void setText(String Texto) Establece el texto que va en el TextField
  • 10. Taller de Programación II :: JAVA :: Componentes básicos TextField Un ejemplo, utilizando la clase TextField, con sus constructores y el ActionListener. Palabra reservada this this, es útil para hacer referencial al objeto actual, en este caso al Frame. Cuando el usuario ingresa g texto en el primer TextField y presiona enter pasa el focus al segundo TextField.
  • 11. Taller de Programación II :: JAVA :: Componentes básicos Botones Los botones proporcionan al usuario una forma de iniciar alguna acción. i i i l ió Controles de tipo Button. Todo usuario de GUI está familiarizado con los botones, esos controles elementales sobre los que se hace clic para indicar a un programa que debe empezar a realizar alguna acción acción.
  • 12. Taller de Programación II :: JAVA :: Componentes básicos Botones Los botones están soportado en la clase java.awt.Button, esta es l j j B la jerarquía d l clase. í de la l Los constructores de la clase Button se muestra a continuación. Constructor Descripción Button B tt Construye un botón sin etiqueta C t b tó i ti t Button(String Etiqueta) Construye un botón con etiqueta
  • 13. Taller de Programación II :: JAVA :: Componentes básicos Botones Un ejemplo, utilizando la clase Button, con sus constructores en un applet. l
  • 14. Taller de Programación II :: JAVA :: Componentes básicos Botones Para gestionar los eventos de los botones se usa la interfaz A i Li i f ActionListener, esta i interfaz tiene como f i único método actionPerformed, al que se le pasa un objeto a la clase ActionEvent cuando se hace clic sobre el b tó li b l botón. ActionListener Método Descripción void addActionListener(ActionListener) Añade el ActionListener indicado para recibir eventos del botón String getActionCommand( ) Obtiene el comando del evento producido p por el botón.
  • 15. Taller de Programación II :: JAVA :: Componentes básicos Botones Este es el diagrama de la herencia de la clase g ActionEvent. Todos los métodos de la clase ActionEvent, se muestran a continuación. Método Descripción String getActionCommand( ) Obtiene la cadena del comando String paramString( ) Obtiene una cadena que identifica el evento.
  • 16. Taller de Programación II :: JAVA :: Componentes básicos Botones Implementando una clase BotonesConColores de tipo Frame he implementando la interfaz ActionListener.
  • 17. Taller de Programación II :: JAVA :: Componentes básicos Botones Hay dos formas para determinar qué botón se seleccionó, usando el método getSource y usando comando. Primero, veremos cómo se hace esto con getSource, he aquí un ejemplo.
  • 18. Taller de Programación II :: JAVA :: Componentes básicos Botones También se puede obtener el comando para el botón sobre el que se hizo clic, usando el método getActionCommand Veremos cómo se hace esto con getActionCommand, he aquí un ejemplo.
  • 19. Taller de Programación II :: JAVA :: Componentes básicos Actividad Realizar la siguiente interfaz gráfica, que permita ingresar dos número y mostrar el resultado al hacer clic en el botón ú ó Calcular clic Sugerencias Importar el paquete java.awt.* Utilizar herencias extends Frame. Implementar los Listener ActionListener y WindowListener
  • 20. Taller de Programación II :: JAVA :: Componentes básicos Solución Realizar los siguientes pasos: Crear la Clase Sumar que herede la Clase Frame Implementar Implementa las inte faces ActionListene y Windo Listene interfaces ActionListener WindowListener Implementar el método main y su constructor. package ClasesGraficas; import java.awt.*; import java.awt.event.*; public class Sumar extends Frame implements WindowListener, ActionListener { Método p public Sumar() { } Constructor public void windowActivated(WindowEvent arg0) { } public void windowClosed(WindowEvent arg0) { } Métodos public void windowClosing(WindowEvent arg0) { } Implementados por public bli void id windowDeactivated(WindowEvent arg0) { } i d i d( i d 0) WindowListener public void windowDeiconified(WindowEvent arg0) { } public void windowIconified(WindowEvent arg0) { } public void windowOpened(WindowEvent arg0) { } Método Implementado p p por public void actionPerformed(ActionEvent arg0) { } ActionListener public static void main(String[] args) { } Método main }
  • 21. Taller de Programación II :: JAVA :: Componentes básicos Solución Realizar los siguientes pasos: Declarar los objetos en la clase package ClasesGraficas; import java.awt.*; import java.awt.event.*; public class Sumar extends Frame implements WindowListener, ActionListener { Label lblvalor1=new Label( Numero 1"); Label("Numero 1 ); Label lblvalor2=new Label("Numero 2"); Label lblresultado=new Label("Resultado"); TextField txtvalor1=new TextField(); (); Declaración de D l ió d TextField txtvalor2=new TextField(); Objetos en la TextField txtresultado=new TextField(); clase Button cmdlimpiar=new Button("Limpiar"); Button cmdcalcular=new Button("Calcular"); Button( Calcular ); Button cmdcerrar=new Button("Cerrar"); }
  • 22. Taller de Programación II :: JAVA :: Componentes básicos Solución Ir al método constructor y escribir el siguiente código public Sumar() { super("Operaciones"); setLayout(null); setBackground(Color.lightGray); setSize(300,150); show(); addWindowListener(this); ddWi d Li t (thi ) lblvalor1.setBounds(20,40,60,20); txtvalor1.setBounds(90,40,60,20); lblvalor2.setBounds(20,65,60,20); txtvalor2.setBounds(90,65,60,20); lblresultado.setBounds(20,90,60,20); lblresultado setBounds(20 90 60 20); txtresultado.setBounds(90,90,60,20); Código dentro del cmdlimpiar.setBounds(160,40,60,20); método constructor cmdcalcular.setBounds(160,65,60,20); cmdcerrar.setBounds(160,90,60,20); add(lblvalor1); add(txtvalor1); add(lblvalor2); add(txtvalor2); add(lblresultado); txtresultado.setEnabled(false); txtresultado setEnabled(false); add(txtresultado); add(cmdlimpiar); cmdlimpiar.addActionListener(this); add(cmdcalcular); cmdcalcular.addActionListener(this); add(cmdcerrar); cmdcerrar.addActionListener(this); }
  • 23. Taller de Programación II :: JAVA :: Componentes básicos Solución public Sumar() { super( Operaciones ); super("Operaciones"); setLayout(null); setBackground(Color.lightGray); setSize(300,150); show(); addWindowListener(this); } Descripción del Código Se llama al método super del constructor para ponerle un título al Frame. Se utiliza un gestor de esquema para poder poner los componentes en diferente ubicación para ello se utiliza setLayout(null). Para colocar un determinado color de fondo se utiliza setBackground(Color.lightGray). tB k d(C l li htG ) Para determinar el tamaño del frame, se utiliza setSize(300,150). Para mostrar el Frame, se utiliza show(). Y por último indicamos que el Frame pueda escuchar los eventos con el método addWindowListener(this).
  • 24. Taller de Programación II :: JAVA :: Componentes básicos Solución public Sumar() { lblvalor1.setBounds(20,40,60,20); txtvalor1.setBounds(90,40,60,20); lblvalor2.setBounds(20,65,60,20); txtvalor2.setBounds(90,65,60,20); lblresultado.setBounds(20,90,60,20); txtresultado.setBounds(90,90,60,20); txtresultado setBounds(90 90 60 20); cmdlimpiar.setBounds(160,40,60,20); cmdcalcular.setBounds(160,65,60,20); cmdcerrar.setBounds(160,90,60,20); } Descripción del Código Antes de mostrar los componentes utilizamos el método setBounds, para fijar la posición y tamaño de los componentes dentro del frame. void java.awt.Component.setBounds(int x, int y, int ancho, int altura)
  • 25. Taller de Programación II :: JAVA :: Componentes básicos Solución public Sumar() { …. ….. add(lblvalor1); add(txtvalor1); add(lblvalor2); add(txtvalor2); add(lblresultado); txtresultado.setEnabled(false); add(txtresultado); add(cmdlimpiar); cmdlimpiar.addActionListener(this); Se le da la funcionalidad a add(cmdcalcular); los botones para que cmdcalcular.addActionListener(this); escuche los eventos y adicionamos los add(cmdcerrar); componentes al frame cmdcerrar.addActionListener(this); } Descripción del Código Después de haber fijado la posición y tamaño de los componentes dentro del frame, se procede adicionarlos para ser mostrados add(componente) Para que los Botones escuchen los eventos se utiliza cmdlimpiar.addActionListener(this);
  • 26. Taller de Programación II :: JAVA :: Componentes básicos Solución Ir al método actionPerformed y escribir el siguiente código public void actionPerformed(ActionEvent e) { double 1 0 2 0 0 d bl v1=0,v2=0,r=0; if(e.getSource()==cmdlimpiar){ txtvalor1.setText(""); txtvalor2.setText(""); txtresultado.setText(""); txtresultado setText(""); txtvalor1.requestFocus(); } if(e.getSource()==cmdcalcular){ v1=Double.valueOf(txtvalor1.getText()).doubleValue(); v1=Double valueOf(txtvalor1 getText()) doubleValue(); Código para el botón v2=Double.valueOf(txtvalor2.getText()).doubleValue(); cmdcalcular, para mostrar el r=v1+v2; resultado de la operación realizada txtresultado.setText(Double.toString(r)); } if(e.getSource()==cmdcerrar){ System.exit(0); } } Descripción del Código Pregunta por el nombre del objeto. Convierte una cadena a un valor double. double v1=Double.valueOf(txtvalor1.getText()).doubleValue(); Muestra el Resultado txtresultado.setText(Double.toString(r));
  • 27. Taller de Programación II :: JAVA :: Componentes básicos Solución public void windowClosing(WindowEvent e) { System.exit(0); } public static void main(String[] args) { bli t ti id i (St i [] ) Sumar frmsuma= new Sumar( ); } } Creación de un objeto frmsuma de tipo Sumar Descripción del Código Ir al método windowClosing para indicarle al frame que cuando se haga clic en el boton , se debe cerrar . Y por último crear el objeto frmsuma en el método main, Sumar frmsuma= new Sumar( ); Nota : Se adjunta el código completo de la Clase Sumar, el participante puede importar dicha clase.
  • 28. Taller de Programación II :: JAVA :: Muy bien, hemos aprendido a utilizar los componentes Label, TextField y Button y su implementación de los Listener, ahora inténtalo en tu computador. computador Recuerda que puedes ver este tutorial las veces que deseas. FELICITACIONES!! C CO S
  • 29. Taller de Programación II :: JAVA :: Créditos CREDITOS Este tutorial fue realizado y editado por: Manuel Jesús Sánchez Chero Tutor Virtual de Educación a Distancia Chiclayo - Perú Versión 1.0