SlideShare una empresa de Scribd logo
7. Gestión de eventos con AWT/Swing
             Qué es Gestión de Eventos
             El hilo Swing
             Modelo de Eventos Java
             Jerarquía de Eventos
             Clases anónimas y Adapters
             Ejemplos



Programación III                 Tema 6 - Ventanas
Modelos de Gestión de
                   Eventos
   • Programación Tradicional:
           – No existen modelos de gestión de eventos.
           – Programa: Mediante un bucle (polling)
           – Ejemplo: Si se pulsa ENTER, sólo se detecta si se hace un getChar()
   • Programación en Java (y en otros lenguajes actuales)
           – Programación multihilo implícita (2 threads)
                   • Un flujo de control para el programa, otro para las ventanas
           – Modelos de eventos definidos
           – El programa es "avisado" automáticamente de todas aquellas
             acciones (eventos) en los que esté interesado.
                   • Para ello debe definirse previamente qué acciones “interesa escuchar”
                   • El flujo de control que ejecuta el evento es el de las ventanas
           – Ejemplo: Si el usuario pulsa un botón, el entorno es capaz de avisar
             al programa haciendo una llamada a un método. Para ello, el botón
             (el origen del evento) debe conocer al programa (el escuchador del
             evento).

Programación III                                Tema 6 - Ventanas
¿Qué hace (el hilo) Swing?

   • En cuanto se crea y visualiza la primera
     ventana, Swing se encarga de:
           – "Pintar" las ventanas
                   • Las redibuja si se redimensionan, cambian, se pone
                     una por delante...
           – Gestionar el ratón y el teclado con relación a las
             ventanas
           – Generar los eventos necesarios
                   • Pulsaciones de botones
                   • Paso de ratón por los componentes
                   • Cambios en ventanas
                   • etc.
Programación III                        Tema 6 - Ventanas
Modelo de Eventos Java (1)
   • Distingue dos elementos:
           – Fuentes de Eventos: elementos sobre los que se producen los eventos
             (botón, lista, panel...)
                   • Cualquier componente de AWT (o SWING) sobre el que se puedan producir
                     eventos (prácticamente todos)
           – Escuchadores de Eventos: elementos que reciben las notificaciones de los
             eventos
                   • Cualquier objeto (perteneciente a una clase) que implemente alguno de los
                     interfaces definidos en Java para la notificación de los eventos.
   • Funcionamiento:
           – Una “Fuente de Eventos” puede tener asignado un “Escuchador de Eventos”
             (o varios) que recibirá las notificaciones de sus eventos.
           – Cuando se produce un evento sobre la fuente de eventos, su escuchador es
             informado.
           – Para ello, se invoca el método que el escuchador tenga definido para la
             notificación de ese tipo de evento.
           – El escuchador, dentro de ese método, contendrá el código necesario para
             tratar ese evento.
   • ¿Cómo se asigna un escuchador a una fuente de eventos?
                   <FuenteEvento>.add<EventoListener>( <Obj.Escuchador> )


Programación III                                   Tema 6 - Ventanas
Modelo de Eventos Java (2): Ej.




Programación III                  Tema 6 - Ventanas
Modelo de Eventos Java (3):
                                 Interfaces
   • Interfaces para la notificación de eventos
           – Interfaces que contienen métodos (que reciben un objeto evento) que
             serán invocados cuando se produzca un determinado tipo de evento.
           – Cada interfaz está especializado en capturar un tipo de eventos
             determinado.
           – Lista de algunas Interfaces y sus métodos:
        Interfaz              Métodos
        ActionListener        actionPerformed(ActionEvent)

        FocusListener         focusGained, focusLost(FocusEvent)

        TextListener          textValueChanged(TextEvent)

        KeyListener           keyPressed, keyReleased, keyTyped(KeyEvent)

        MouseListener         mouseClicked, mousePressed, mouseReleased, mouseEntered,
                              mouseExited(MouseEvent)
        MouseMotionListener   mouseDragged, mouseMoved(MouseEvent)

        WindowListener        windowActivated, windowClosed, windowClosing, windowDeactivated,
                              windowDeiconified, windowIconified, windowOpened(WindowEvent)

Programación III                                 Tema 6 - Ventanas
Jerarquía de Eventos (1)
           – Los métodos de las interfaces, además de ser llamados, reciben un
             objeto evento que contiene la información que pueda ser relevante.
           – Los objetos de tipo “Evento” están organizados en una jerarquía de
             clases de eventos:




Programación III                       Tema 6 - Ventanas
Jerarquía de Eventos (2)
           – Padre de todos los eventos: EventObject
           – Padre de eventos gráficos: AWTEvent
           – Cada objeto posee información sobre el evento concreto que se ha
             producido.
   • Obtención de la información de un evento:
           – Cada tipo de evento posee métodos para consultar la información
             del evento ocurrido. Ejemplos:
                   • Clase EventObject
                       – getSource(): devuelve el objeto (fuente) sobre el que se ha producido el
                         evento
                   • Clase ActionEvent
                       – getModifiers(): información variada sobre el evento (por ejemplo, comb. de
                         teclas pulsadas –shift, alt-)
                   • Clase MouseEvent
                       – getModifiers(): información variada sobre el evento (p ej. el botón pulsado)
                       – getX() y getY(): coordenada pulsación de ratón
                       – getClickCount(): número de clicks seguidos efectuados


Programación III                                  Tema 6 - Ventanas
Jerarquía de Eventos (3)
            – Cada fuente de eventos, generará distintos tipos posibles
              de eventos:
     Componente    Evento        Hecho que lo genera

     Button        ActionEvent   El usuario hace un clic sobre el botón
     Checkbox      ItemEvent     El usuario selecciona o deselecciona el Checkbox
     List          ActionEvent   El usuario hace doble click sobre un elemento de la lista
                   ItemEvent     El usuario selecciona o deselecciona un elemento de la lista
     Component     MouseEvent    El usuario pulsa o suelta un botón del ratón, el cursor del
                                 ratón entra o sale o el usuario mueve o arrastra el ratón
                   FocusEvent    El componente gana o pierde el foco
                   KeyEvent      El usuario pulsa o suelta una tecla
     TextField     ActionEvent   El usuario termina de editar el texto (hace un intro)
     Window        WindowEvent   La ventana se abre, se cierra, se minimiza, se reestablece o
                                 se cierra.



Programación III                         Tema 6 - Ventanas
Ej. (1): Ventana y escuchador
   • Ventana con un botón y una etiqueta. Cuando se
     pulse el botón queremos que en la etiqueta se
     visualice la fecha y hora actual.
   • Pasos:
           – Crear la ventana y todos sus componentes.
           – Crear un objeto escuchador que sea capaz de atender a
             los eventos generados al pulsar un botón.
                   • Evento generado: ActionEvent
                   • Interfaz que posee los métodos para atender ese evento:
                     ActionListener
           – Asignar ese escuchador al botón.
           – Incorporar el código a ejecutar cuando se pulse el botón.
        Ejemplo: VentanaBoton

Programación III                            Tema 6 - Ventanas
Ejemplos (1b): Hilos

   • Aprovechando este ejemplo, veamos cómo
     funcionan esos dos hilos
           – A la vez que el main() sigue haciendo cosas
           – Un evento las puede hacer también
   • Escribir a un TextArea
           – Cálculo
           – Botón




Programación III                Tema 6 - Ventanas
Ej (2): Escuchador =
                          Ventana
   • ¿Quién debe ser el escuchador? Hay multitud de
     enfoques.
           – Puede ser una clase que ya hayamos creado (recordar que
             se pueden implementar tantas interfaces como se quiera).
             Por ejemplo la propia ventana.
                     public class VentanaBotonEscuchador
                     extends JFrame
                     implements ActionListener
           – Puede ser otra clase completamente nueva que sólo se
             encargue de ser escuchadora. El principal problema está
             en acceder a la información/recursos que se puedan
             necesitar para tratar el evento correctamente.
           – Clase anónimas. Clases que ya proporciona Java que
             permiten una gestión simple y limpia de los eventos. Un
             enfoque sencillo aunque sorprendente a primera vista.
        Ejemplo: VentanaBotonEscuchador

Programación III                    Tema 6 - Ventanas
Ej (3): Escuchador de varios eventos

           – Ejemplo: ventana con tres botones y una etiqueta.
           – Si tres botones un mismo escuchador ¿cómo saber en el
             actionPerformed( ) el botón pulsado?
           – Solución: alternativa sobre el evento
                     public void actionPerformed(ActionEvent e)
                     {
                       JButton botonPulsado = (JButton)e.getSource();
                       if (botonPulsado == boton1)
                         etiqueta.setText("Se ha pulsado el botón 1");
                       if (botonPulsado == boton2)
                         etiqueta.setText("Se ha pulsado el botón 2");
                       if (botonPulsado == boton3)
                         etiqueta.setText("Se ha pulsado el botón 3");
                     }



    Ejemplo: VentanaBotones
Programación III                       Tema 6 - Ventanas
Ej (4): Varios eventos desde dist tipo
           – Tenemos una ventana con tres botones, una caja de
             texto y una etiqueta.
           – En este caso, ¿cómo averiguamos si el elemento sobre el
             que se produce el evento es un botón o la caja de texto?
           – Del mismo modo
                     ...
                     boton3.addActionListener(this);
                     texto.addActionListener(this);
                     ...
                   public void actionPerformed(ActionEvent e)
                   {
                     Object elemento = e.getSource();
                     ...
                     if (elemento == texto)
                         etiqueta.setText(“Texto rellenado: " +
                                                texto.getText());
                   ...                          Ejemplo: VentanaBotonesTexto
Programación III                      Tema 6 - Ventanas
Ej (5): Conocer el tipo de
                                  comp.
   • Si en algún momento necesitásemos conocer el tipo al que pertenece
     alguno de los objetos, podríamos hacer
                     Object elemento = e.getSource();
                     if (elemento instanceof JButton)
                     {
                           System.out.println("El elemento es un botón");
                           JButton boton = (JButton)elemento;
                     }
                     if (elemento instanceof JTextField)
                     {
                           System.out.println("El elemento es de texto");
                           JTextField cajaTexto = (JTextField)elemento;
                     }
   • ¿Qué ventaja ofrece esta última opción?
   • Ejemplo Completo
                   • Botones (lo ya visto)
                   • Ratón sobre un panel. Evento: MouseEvent - Interfaz: MouseListener
                   • Eventos de ventana (cerrar, minimizar, maximizar...)
                       – Evento: WindowEvent - Interfaz: WindowListener
                       – Acción a realizar: cerrar la ventana y terminar el programa.

                                                                          Ejemplo: VentanaEventos
Programación III                                      Tema 6 - Ventanas
Adapters (1/2)

   • Cuando un listener tiene muchos eventos, como
     por ejemplo el MouseListener, hay que redefinir
     todos los métodos, aunque sólo se necesite uno de
     ellos.
   • Para evitar esto, el API ofrece una clase Adapter
     para cada listener, en donde ya están redefinidos
     los métodos del interfaz listener correspondiente.
   • Podemos utilizar una clase que herede de un
     Adapter para el tratamiento de los eventos de una
     forma más cómoda.
   • Esta clase debe ser interna al JFrame, para
     poder acceder a sus elementos.

                         Ejemplo: VentanaEventosConAdapter

Programación III           Tema 6 - Ventanas
Adapters (2/2)

   • Esta clase interna, también se puede definir
     de forma anónima:
                   this.addWindowListener( new WindowAdapter() {
                         public void windowClosing(WindowEvent e) {
                               System.exit(0);
                         }
                   });


                   • Muchos entornos de desarrollo, que generan código
                     de manera automática para la gestión de eventos, lo
                     hacen utilizando una clase interna y anónima.
                          Ejemplo: VentanaEventosConAdapterAnonimo

Programación III                         Tema 6 - Ventanas
Nota: patrón Observer

   • El concepto de escuchador responde a un
     patrón de diseño más general: Observer
           – Un objeto, llamado sujeto, mantiene una lista
             de sus objetos observadores
           – Cada vez que hay un determinado cambio de
             estado en el sujeto, este notifica a sus
             observadores
                   • Llamando a un método particular
                   • Pasando información con sus parámetros
           – Suele concretarse en cumplir un interfaz
                   • Se puede hacer con punteros a función en otros
                     lengs.
Programación III                       Tema 6 - Ventanas
Ejemplos de Observer
           – Objeto/operación que progresa
                   • IProgresa{ void progresa( double p ); }
           – Objeto/operación que acaba
                   • IAcaba{ void acabo(); }
           – Objeto/estructura que se puede recorrer
                   • IProcesaRecorrido{ void procesa( Object o ); }
           – Objeto que muta/cambia
                   • IMutacionListener{ void haMutado( ... ); }
   • Posible ejemplo: carpeta de disco
           – Recorrido de ficheros - progresa + opera + acaba
           – Observador de carpeta que cambia (sus fichs.)
Programación III                         Tema 6 - Ventanas
Ejemplo Observer (cont)
           public class ProcesoFicheros
             public ProcesoFicheros( String path ) ...
             public void recorre( IProcesaRecorrido rec,
                 IProgresa prog, IAcaba fin ) ...
             public void addCambioCarpetaListener(
                 ICambioCarpListener esc ) ...
           }
           – En el recorrido llamará a:
                   • rec.procesa( <cada fichero> )
                   • prog.progresa( <% de vez en cuando> )
                   • fin.acabo() // al final
           – Al añadir un escuchador de cambio llamará a:
                   • esc.haCambiado( <info de cambio> ) // cada cambio
Programación III                      Tema 6 - Ventanas
Concurso: ProcesoFicheros

   • Premio para el mejor: ¡1,5 puntos!
           – Posibles "accesits" para otros mejores
   • Fecha tope: 18 de noviembre
   • Condiciones
           – Interfaz visual ventana para seguir la búsqueda
                   • Lanzamiento de búsqueda - config. de path
                   • Barra de progreso
                   • Información de ficheros encontrados
                   • Lanzamiento de escucha / info. popup de cambios
           – Todo el código propio excepto uso de API Java6
           – Bien documentado javadoc
Programación III                       Tema 6 - Ventanas

Más contenido relacionado

La actualidad más candente

presentacion topicos unidad 1
presentacion topicos unidad 1presentacion topicos unidad 1
presentacion topicos unidad 1
Angel Suaste
 
Manejo de Eventos en java
Manejo de Eventos en javaManejo de Eventos en java
Manejo de Eventos en java
Silvana Vargas
 
Manejo de eventos en java
Manejo de eventos en javaManejo de eventos en java
Manejo de eventos en java
aleja09_40
 
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
Anel Sosa
 
Manejo de eventos
Manejo de eventosManejo de eventos
Manejo de eventosale8819
 
Manejo Eventos en java
Manejo Eventos en javaManejo Eventos en java
Manejo Eventos en javajent46
 
Manejo Eventos
Manejo EventosManejo Eventos
Manejo Eventoslichic
 
6.eventos y swing
6.eventos y swing6.eventos y swing
6.eventos y swing
Ismael Perea
 
Event Programing & Driven Mediator Pattern
Event Programing & Driven Mediator PatternEvent Programing & Driven Mediator Pattern
Event Programing & Driven Mediator Pattern
ripoblet
 

La actualidad más candente (18)

Eventos del ratón en Java
Eventos del ratón en JavaEventos del ratón en Java
Eventos del ratón en Java
 
presentacion topicos unidad 1
presentacion topicos unidad 1presentacion topicos unidad 1
presentacion topicos unidad 1
 
Manejo de Eventos en java
Manejo de Eventos en javaManejo de Eventos en java
Manejo de Eventos en java
 
Manejo de eventos en java
Manejo de eventos en javaManejo de eventos en java
Manejo de eventos en java
 
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
 
Manejo de eventos
Manejo de eventosManejo de eventos
Manejo de eventos
 
Manejo Eventos en java
Manejo Eventos en javaManejo Eventos en java
Manejo Eventos en java
 
Manejo Eventos
Manejo EventosManejo Eventos
Manejo Eventos
 
Equipo3
Equipo3Equipo3
Equipo3
 
Clase event
Clase eventClase event
Clase event
 
6.eventos y swing
6.eventos y swing6.eventos y swing
6.eventos y swing
 
6.eventos y swing
6.eventos y swing6.eventos y swing
6.eventos y swing
 
Eventos
EventosEventos
Eventos
 
Java event
Java eventJava event
Java event
 
Sesion12-Componentes AWT
Sesion12-Componentes AWTSesion12-Componentes AWT
Sesion12-Componentes AWT
 
03 interfaces gráficas awt
03   interfaces gráficas awt03   interfaces gráficas awt
03 interfaces gráficas awt
 
Irv
IrvIrv
Irv
 
Event Programing & Driven Mediator Pattern
Event Programing & Driven Mediator PatternEvent Programing & Driven Mediator Pattern
Event Programing & Driven Mediator Pattern
 

Destacado

Programacion Orientada a Eventos
Programacion Orientada a EventosProgramacion Orientada a Eventos
Programacion Orientada a EventosLaura
 
Empaquetado de aplicaciones Java con Netbeans
Empaquetado de aplicaciones Java con NetbeansEmpaquetado de aplicaciones Java con Netbeans
Empaquetado de aplicaciones Java con Netbeans
Laura Folgado Galache
 
Programación visual y orientada a eventos
Programación  visual y orientada a eventosProgramación  visual y orientada a eventos
Programación visual y orientada a eventosMario Martinez Alvarez
 
Programacion Orientada a Objetos y a Eventos
Programacion Orientada a Objetos y a EventosProgramacion Orientada a Objetos y a Eventos
Programacion Orientada a Objetos y a EventosNICK
 
Programación Orientada a Eventos Java
Programación Orientada a Eventos JavaProgramación Orientada a Eventos Java
Programación Orientada a Eventos Java
José Mendoza
 
Programacion orientada a objetos y programacion orientada a eventos
Programacion orientada a objetos y programacion orientada a eventosProgramacion orientada a objetos y programacion orientada a eventos
Programacion orientada a objetos y programacion orientada a eventosJosue Ivan Turcios
 
Interfaces gráficas con ide netbeans guia 1
Interfaces gráficas con ide netbeans guia 1Interfaces gráficas con ide netbeans guia 1
Interfaces gráficas con ide netbeans guia 1
Pablo Galeana Bailey
 
Interfaces gráficas con ide netbeans guia 3
Interfaces gráficas con ide netbeans guia 3Interfaces gráficas con ide netbeans guia 3
Interfaces gráficas con ide netbeans guia 3
Pablo Galeana Bailey
 
Los MIDlets
Los MIDletsLos MIDlets
Los MIDlets
CESAR A. RUIZ C
 
Programación orientada a eventos - Alejandro Solano
Programación orientada a eventos - Alejandro SolanoProgramación orientada a eventos - Alejandro Solano
Programación orientada a eventos - Alejandro Solano2008PA2Info3
 
T4 Sql LMD
T4 Sql  LMDT4 Sql  LMD
T4 Sql LMD
rmonago
 
Espacios De Nombres Y Desarrollo De LibreríAs
Espacios De Nombres Y Desarrollo De LibreríAsEspacios De Nombres Y Desarrollo De LibreríAs
Espacios De Nombres Y Desarrollo De LibreríAs
Marvin Romero
 
Base de datos unidad 1
Base de datos   unidad 1Base de datos   unidad 1
Base de datos unidad 1
islandin
 
Gui interfaz gráfica de usuario javax.swing y java.awt
Gui interfaz gráfica  de usuario javax.swing y java.awtGui interfaz gráfica  de usuario javax.swing y java.awt
Gui interfaz gráfica de usuario javax.swing y java.awtcarlosAhumada_12
 
Espacios de nombres en XML
Espacios de nombres en XMLEspacios de nombres en XML
Espacios de nombres en XML
Jose Emilio Labra Gayo
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetoschutas666
 
Tecnologia Microsoft
Tecnologia  MicrosoftTecnologia  Microsoft
Tecnologia Microsoftbrobelo
 

Destacado (20)

Programacion Orientada a Eventos
Programacion Orientada a EventosProgramacion Orientada a Eventos
Programacion Orientada a Eventos
 
Empaquetado de aplicaciones Java con Netbeans
Empaquetado de aplicaciones Java con NetbeansEmpaquetado de aplicaciones Java con Netbeans
Empaquetado de aplicaciones Java con Netbeans
 
Programación visual y orientada a eventos
Programación  visual y orientada a eventosProgramación  visual y orientada a eventos
Programación visual y orientada a eventos
 
Programacion Orientada a Objetos y a Eventos
Programacion Orientada a Objetos y a EventosProgramacion Orientada a Objetos y a Eventos
Programacion Orientada a Objetos y a Eventos
 
Programación Orientada a Eventos Java
Programación Orientada a Eventos JavaProgramación Orientada a Eventos Java
Programación Orientada a Eventos Java
 
Programacion orientada a objetos y programacion orientada a eventos
Programacion orientada a objetos y programacion orientada a eventosProgramacion orientada a objetos y programacion orientada a eventos
Programacion orientada a objetos y programacion orientada a eventos
 
Interfaces gráficas con ide netbeans guia 1
Interfaces gráficas con ide netbeans guia 1Interfaces gráficas con ide netbeans guia 1
Interfaces gráficas con ide netbeans guia 1
 
Interfaces gráficas con ide netbeans guia 3
Interfaces gráficas con ide netbeans guia 3Interfaces gráficas con ide netbeans guia 3
Interfaces gráficas con ide netbeans guia 3
 
Los MIDlets
Los MIDletsLos MIDlets
Los MIDlets
 
Programacion orienatada a objetos parte 1
Programacion orienatada a objetos parte 1Programacion orienatada a objetos parte 1
Programacion orienatada a objetos parte 1
 
Programación orientada a eventos - Alejandro Solano
Programación orientada a eventos - Alejandro SolanoProgramación orientada a eventos - Alejandro Solano
Programación orientada a eventos - Alejandro Solano
 
Cuadro
CuadroCuadro
Cuadro
 
T4 Sql LMD
T4 Sql  LMDT4 Sql  LMD
T4 Sql LMD
 
Espacios De Nombres Y Desarrollo De LibreríAs
Espacios De Nombres Y Desarrollo De LibreríAsEspacios De Nombres Y Desarrollo De LibreríAs
Espacios De Nombres Y Desarrollo De LibreríAs
 
Base de datos unidad 1
Base de datos   unidad 1Base de datos   unidad 1
Base de datos unidad 1
 
Gui interfaz gráfica de usuario javax.swing y java.awt
Gui interfaz gráfica  de usuario javax.swing y java.awtGui interfaz gráfica  de usuario javax.swing y java.awt
Gui interfaz gráfica de usuario javax.swing y java.awt
 
Espacios de nombres en XML
Espacios de nombres en XMLEspacios de nombres en XML
Espacios de nombres en XML
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetos
 
Programacion orientada a objetos parte 2
Programacion orientada a objetos parte 2Programacion orientada a objetos parte 2
Programacion orientada a objetos parte 2
 
Tecnologia Microsoft
Tecnologia  MicrosoftTecnologia  Microsoft
Tecnologia Microsoft
 

Similar a Programación III (Java) - 07 Eventos

2TAP Tema 1-Eventos.pptx
2TAP Tema 1-Eventos.pptx2TAP Tema 1-Eventos.pptx
2TAP Tema 1-Eventos.pptx
ATM_SSI
 
Swing2
Swing2Swing2
Eventos tpa walter isc
Eventos tpa walter iscEventos tpa walter isc
Eventos tpa walter iscWalter H
 
Java construye las interfaces gráficas del usuario mediante awt
Java construye las interfaces gráficas del usuario mediante awtJava construye las interfaces gráficas del usuario mediante awt
Java construye las interfaces gráficas del usuario mediante awt
jbersosa
 
ManejoDeEventosEnJava.PPT
ManejoDeEventosEnJava.PPTManejoDeEventosEnJava.PPT
ManejoDeEventosEnJava.PPT
ATM_SSI
 
Actionscript3.0 juan camilo 11 02
Actionscript3.0 juan camilo 11 02Actionscript3.0 juan camilo 11 02
Actionscript3.0 juan camilo 11 02kmilithho
 
Actionscript3.0 juan camilo 11 02
Actionscript3.0 juan camilo 11 02Actionscript3.0 juan camilo 11 02
Actionscript3.0 juan camilo 11 02
Juan Camilo Balcazar
 
Eventos
EventosEventos
Eventos
negrogatica
 
Poo2 u1 a3_roag_2
Poo2 u1 a3_roag_2Poo2 u1 a3_roag_2
Poo2 u1 a3_roag_2
cccimsa
 
Manejo Eventos en java
Manejo Eventos en javaManejo Eventos en java
Manejo Eventos en javajent46
 
Interfaces Usuario 3
Interfaces Usuario 3Interfaces Usuario 3
Interfaces Usuario 3Milaly
 
Topicos Avanzados de Programacion Unidad 1 Eventos
Topicos Avanzados de Programacion Unidad 1 EventosTopicos Avanzados de Programacion Unidad 1 Eventos
Topicos Avanzados de Programacion Unidad 1 Eventos
José Antonio Sandoval Acosta
 
Eventos
EventosEventos
Eventos
aleja09_40
 
TAP - Eventos
TAP - EventosTAP - Eventos
TAP - Eventos
Juan Isai
 
Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetos
brandonhh10
 
Fundamentos de visual basic 6.0
Fundamentos de visual basic 6.0Fundamentos de visual basic 6.0
Fundamentos de visual basic 6.0
Michelle Miranda Johnson
 
Topicos Avanzados de Programacion
Topicos Avanzados de ProgramacionTopicos Avanzados de Programacion
Topicos Avanzados de ProgramacionKaraa Xiah Poot
 

Similar a Programación III (Java) - 07 Eventos (20)

2TAP Tema 1-Eventos.pptx
2TAP Tema 1-Eventos.pptx2TAP Tema 1-Eventos.pptx
2TAP Tema 1-Eventos.pptx
 
Swing2
Swing2Swing2
Swing2
 
Manejoevento
ManejoeventoManejoevento
Manejoevento
 
Eventos tpa walter isc
Eventos tpa walter iscEventos tpa walter isc
Eventos tpa walter isc
 
Java construye las interfaces gráficas del usuario mediante awt
Java construye las interfaces gráficas del usuario mediante awtJava construye las interfaces gráficas del usuario mediante awt
Java construye las interfaces gráficas del usuario mediante awt
 
Adrian eventos
Adrian eventosAdrian eventos
Adrian eventos
 
ManejoDeEventosEnJava.PPT
ManejoDeEventosEnJava.PPTManejoDeEventosEnJava.PPT
ManejoDeEventosEnJava.PPT
 
Actionscript3.0 juan camilo 11 02
Actionscript3.0 juan camilo 11 02Actionscript3.0 juan camilo 11 02
Actionscript3.0 juan camilo 11 02
 
Actionscript3.0 juan camilo 11 02
Actionscript3.0 juan camilo 11 02Actionscript3.0 juan camilo 11 02
Actionscript3.0 juan camilo 11 02
 
Actionscript3.0 juan camilo 11 02
Actionscript3.0 juan camilo 11 02Actionscript3.0 juan camilo 11 02
Actionscript3.0 juan camilo 11 02
 
Eventos
EventosEventos
Eventos
 
Poo2 u1 a3_roag_2
Poo2 u1 a3_roag_2Poo2 u1 a3_roag_2
Poo2 u1 a3_roag_2
 
Manejo Eventos en java
Manejo Eventos en javaManejo Eventos en java
Manejo Eventos en java
 
Interfaces Usuario 3
Interfaces Usuario 3Interfaces Usuario 3
Interfaces Usuario 3
 
Topicos Avanzados de Programacion Unidad 1 Eventos
Topicos Avanzados de Programacion Unidad 1 EventosTopicos Avanzados de Programacion Unidad 1 Eventos
Topicos Avanzados de Programacion Unidad 1 Eventos
 
Eventos
EventosEventos
Eventos
 
TAP - Eventos
TAP - EventosTAP - Eventos
TAP - Eventos
 
Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetos
 
Fundamentos de visual basic 6.0
Fundamentos de visual basic 6.0Fundamentos de visual basic 6.0
Fundamentos de visual basic 6.0
 
Topicos Avanzados de Programacion
Topicos Avanzados de ProgramacionTopicos Avanzados de Programacion
Topicos Avanzados de Programacion
 

Más de Andoni Eguíluz Morán

Cebek oficina fija oficina movil 2 - 201611
Cebek   oficina fija oficina movil 2 - 201611Cebek   oficina fija oficina movil 2 - 201611
Cebek oficina fija oficina movil 2 - 201611
Andoni Eguíluz Morán
 
Cebek - oficina fija oficina movil 1 - 201610
Cebek - oficina fija oficina movil 1 - 201610Cebek - oficina fija oficina movil 1 - 201610
Cebek - oficina fija oficina movil 1 - 201610
Andoni Eguíluz Morán
 
El papel de las tic en la construccióLa integración de recursos didácticos di...
El papel de las tic en la construccióLa integración de recursos didácticos di...El papel de las tic en la construccióLa integración de recursos didácticos di...
El papel de las tic en la construccióLa integración de recursos didácticos di...
Andoni Eguíluz Morán
 
Falta de profesionales tecnológicos.Cómo lo abordamos
Falta de profesionales tecnológicos.Cómo lo abordamosFalta de profesionales tecnológicos.Cómo lo abordamos
Falta de profesionales tecnológicos.Cómo lo abordamos
Andoni Eguíluz Morán
 
Cebek oficina fija oficina movil 2 - 201512
Cebek   oficina fija oficina movil 2 - 201512Cebek   oficina fija oficina movil 2 - 201512
Cebek oficina fija oficina movil 2 - 201512
Andoni Eguíluz Morán
 
Cebek - Oficina fija oficina movil 1 - 201512
Cebek - Oficina fija oficina movil 1 - 201512Cebek - Oficina fija oficina movil 1 - 201512
Cebek - Oficina fija oficina movil 1 - 201512
Andoni Eguíluz Morán
 
Uso seguro de las TIC en el mundo educativo
Uso seguro de las TIC en el mundo educativoUso seguro de las TIC en el mundo educativo
Uso seguro de las TIC en el mundo educativo
Andoni Eguíluz Morán
 
Uso ético y seguro de las TIC
Uso ético y seguro de las TICUso ético y seguro de las TIC
Uso ético y seguro de las TIC
Andoni Eguíluz Morán
 
Redes Sociales Educativas
Redes Sociales EducativasRedes Sociales Educativas
Redes Sociales Educativas
Andoni Eguíluz Morán
 
CCD2015 - Creación contenidos digitales
CCD2015 - Creación contenidos digitalesCCD2015 - Creación contenidos digitales
CCD2015 - Creación contenidos digitales
Andoni Eguíluz Morán
 
Cebek - Medidas basicas de seguridad - 201504
Cebek - Medidas basicas de seguridad - 201504Cebek - Medidas basicas de seguridad - 201504
Cebek - Medidas basicas de seguridad - 201504
Andoni Eguíluz Morán
 
CYPED 2015 - Comunicación y Participación en Entornos Digitales
CYPED 2015 - Comunicación y Participación en Entornos DigitalesCYPED 2015 - Comunicación y Participación en Entornos Digitales
CYPED 2015 - Comunicación y Participación en Entornos Digitales
Andoni Eguíluz Morán
 
Cebek - jornada identidad digital corporativa
Cebek - jornada identidad digital corporativaCebek - jornada identidad digital corporativa
Cebek - jornada identidad digital corporativa
Andoni Eguíluz Morán
 
Gamificación, serious games y negocio (SGGN-1409)
Gamificación, serious games y negocio (SGGN-1409)Gamificación, serious games y negocio (SGGN-1409)
Gamificación, serious games y negocio (SGGN-1409)
Andoni Eguíluz Morán
 
SGGN 20140605
SGGN 20140605SGGN 20140605
SGGN 20140605
Andoni Eguíluz Morán
 
Programación III (Java) - 06 Ventanas
Programación III (Java) - 06 VentanasProgramación III (Java) - 06 Ventanas
Programación III (Java) - 06 VentanasAndoni Eguíluz Morán
 
Programación III (Java) - 05 Genericos y Colecciones - java6-7
Programación III (Java) - 05 Genericos y Colecciones - java6-7Programación III (Java) - 05 Genericos y Colecciones - java6-7
Programación III (Java) - 05 Genericos y Colecciones - java6-7Andoni Eguíluz Morán
 

Más de Andoni Eguíluz Morán (20)

Cebek oficina fija oficina movil 2 - 201611
Cebek   oficina fija oficina movil 2 - 201611Cebek   oficina fija oficina movil 2 - 201611
Cebek oficina fija oficina movil 2 - 201611
 
Cebek - oficina fija oficina movil 1 - 201610
Cebek - oficina fija oficina movil 1 - 201610Cebek - oficina fija oficina movil 1 - 201610
Cebek - oficina fija oficina movil 1 - 201610
 
El papel de las tic en la construccióLa integración de recursos didácticos di...
El papel de las tic en la construccióLa integración de recursos didácticos di...El papel de las tic en la construccióLa integración de recursos didácticos di...
El papel de las tic en la construccióLa integración de recursos didácticos di...
 
Falta de profesionales tecnológicos.Cómo lo abordamos
Falta de profesionales tecnológicos.Cómo lo abordamosFalta de profesionales tecnológicos.Cómo lo abordamos
Falta de profesionales tecnológicos.Cómo lo abordamos
 
Cebek oficina fija oficina movil 2 - 201512
Cebek   oficina fija oficina movil 2 - 201512Cebek   oficina fija oficina movil 2 - 201512
Cebek oficina fija oficina movil 2 - 201512
 
Cebek - Oficina fija oficina movil 1 - 201512
Cebek - Oficina fija oficina movil 1 - 201512Cebek - Oficina fija oficina movil 1 - 201512
Cebek - Oficina fija oficina movil 1 - 201512
 
Uso seguro de las TIC en el mundo educativo
Uso seguro de las TIC en el mundo educativoUso seguro de las TIC en el mundo educativo
Uso seguro de las TIC en el mundo educativo
 
Uso ético y seguro de las TIC
Uso ético y seguro de las TICUso ético y seguro de las TIC
Uso ético y seguro de las TIC
 
Redes Sociales Educativas
Redes Sociales EducativasRedes Sociales Educativas
Redes Sociales Educativas
 
CCD2015 - Creación contenidos digitales
CCD2015 - Creación contenidos digitalesCCD2015 - Creación contenidos digitales
CCD2015 - Creación contenidos digitales
 
Cebek - Medidas basicas de seguridad - 201504
Cebek - Medidas basicas de seguridad - 201504Cebek - Medidas basicas de seguridad - 201504
Cebek - Medidas basicas de seguridad - 201504
 
CYPED 2015 - Comunicación y Participación en Entornos Digitales
CYPED 2015 - Comunicación y Participación en Entornos DigitalesCYPED 2015 - Comunicación y Participación en Entornos Digitales
CYPED 2015 - Comunicación y Participación en Entornos Digitales
 
Cebek - jornada identidad digital corporativa
Cebek - jornada identidad digital corporativaCebek - jornada identidad digital corporativa
Cebek - jornada identidad digital corporativa
 
Gamificación, serious games y negocio (SGGN-1409)
Gamificación, serious games y negocio (SGGN-1409)Gamificación, serious games y negocio (SGGN-1409)
Gamificación, serious games y negocio (SGGN-1409)
 
SGGN 20140605
SGGN 20140605SGGN 20140605
SGGN 20140605
 
Programación III (Java) - 09 Cierre
Programación III (Java) - 09 CierreProgramación III (Java) - 09 Cierre
Programación III (Java) - 09 Cierre
 
Programación III (Java) - 08 threads
Programación III (Java) - 08 threadsProgramación III (Java) - 08 threads
Programación III (Java) - 08 threads
 
Programación III (Java) - 07b Swing
Programación III (Java) - 07b SwingProgramación III (Java) - 07b Swing
Programación III (Java) - 07b Swing
 
Programación III (Java) - 06 Ventanas
Programación III (Java) - 06 VentanasProgramación III (Java) - 06 Ventanas
Programación III (Java) - 06 Ventanas
 
Programación III (Java) - 05 Genericos y Colecciones - java6-7
Programación III (Java) - 05 Genericos y Colecciones - java6-7Programación III (Java) - 05 Genericos y Colecciones - java6-7
Programación III (Java) - 05 Genericos y Colecciones - java6-7
 

Último

UNIDAD DE APRENDIZAJE DEL MES Junio 2024
UNIDAD DE APRENDIZAJE DEL MES  Junio 2024UNIDAD DE APRENDIZAJE DEL MES  Junio 2024
UNIDAD DE APRENDIZAJE DEL MES Junio 2024
EdwardYumbato1
 
PPT: El fundamento del gobierno de Dios.
PPT: El fundamento del gobierno de Dios.PPT: El fundamento del gobierno de Dios.
PPT: El fundamento del gobierno de Dios.
https://gramadal.wordpress.com/
 
Automatización de proceso de producción de la empresa Gloria SA (1).pptx
Automatización de proceso de producción de la empresa Gloria SA (1).pptxAutomatización de proceso de producción de la empresa Gloria SA (1).pptx
Automatización de proceso de producción de la empresa Gloria SA (1).pptx
GallardoJahse
 
CUENTO EL TIGRILLO DESOBEDIENTE PARA INICIAL
CUENTO EL TIGRILLO DESOBEDIENTE PARA INICIALCUENTO EL TIGRILLO DESOBEDIENTE PARA INICIAL
CUENTO EL TIGRILLO DESOBEDIENTE PARA INICIAL
DivinoNioJess885
 
El Liberalismo económico en la sociedad y en el mundo
El Liberalismo económico en la sociedad y en el mundoEl Liberalismo económico en la sociedad y en el mundo
El Liberalismo económico en la sociedad y en el mundo
SandraBenitez52
 
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIACONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
BetzabePecheSalcedo1
 
Sesión: El fundamento del gobierno de Dios.pdf
Sesión: El fundamento del gobierno de Dios.pdfSesión: El fundamento del gobierno de Dios.pdf
Sesión: El fundamento del gobierno de Dios.pdf
https://gramadal.wordpress.com/
 
PRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernández
PRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernándezPRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernández
PRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernández
Ruben53283
 
Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...
Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...
Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...
HuallpaSamaniegoSeba
 
Mapa_Conceptual de los fundamentos de la evaluación educativa
Mapa_Conceptual de los fundamentos de la evaluación educativaMapa_Conceptual de los fundamentos de la evaluación educativa
Mapa_Conceptual de los fundamentos de la evaluación educativa
TatianaVanessaAltami
 
corpus-christi-sesion-de-aprendizaje.pdf
corpus-christi-sesion-de-aprendizaje.pdfcorpus-christi-sesion-de-aprendizaje.pdf
corpus-christi-sesion-de-aprendizaje.pdf
YolandaRodriguezChin
 
3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...
3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...
3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...
rosannatasaycoyactay
 
Horarios Exámenes EVAU Ordinaria 2024 de Madrid
Horarios Exámenes EVAU Ordinaria 2024 de MadridHorarios Exámenes EVAU Ordinaria 2024 de Madrid
Horarios Exámenes EVAU Ordinaria 2024 de Madrid
20minutos
 
Fase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría AnalíticaFase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría Analítica
YasneidyGonzalez
 
HABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdf
HABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdfHABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdf
HABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdf
DIANADIAZSILVA1
 
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
20minutos
 
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNETPRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
CESAR MIJAEL ESPINOZA SALAZAR
 
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
auxsoporte
 
El fundamento del gobierno de Dios. Lec. 09. docx
El fundamento del gobierno de Dios. Lec. 09. docxEl fundamento del gobierno de Dios. Lec. 09. docx
El fundamento del gobierno de Dios. Lec. 09. docx
Alejandrino Halire Ccahuana
 
1º GRADO CONCLUSIONES DESCRIPTIVAS PRIMARIA.docx
1º GRADO CONCLUSIONES DESCRIPTIVAS  PRIMARIA.docx1º GRADO CONCLUSIONES DESCRIPTIVAS  PRIMARIA.docx
1º GRADO CONCLUSIONES DESCRIPTIVAS PRIMARIA.docx
FelixCamachoGuzman
 

Último (20)

UNIDAD DE APRENDIZAJE DEL MES Junio 2024
UNIDAD DE APRENDIZAJE DEL MES  Junio 2024UNIDAD DE APRENDIZAJE DEL MES  Junio 2024
UNIDAD DE APRENDIZAJE DEL MES Junio 2024
 
PPT: El fundamento del gobierno de Dios.
PPT: El fundamento del gobierno de Dios.PPT: El fundamento del gobierno de Dios.
PPT: El fundamento del gobierno de Dios.
 
Automatización de proceso de producción de la empresa Gloria SA (1).pptx
Automatización de proceso de producción de la empresa Gloria SA (1).pptxAutomatización de proceso de producción de la empresa Gloria SA (1).pptx
Automatización de proceso de producción de la empresa Gloria SA (1).pptx
 
CUENTO EL TIGRILLO DESOBEDIENTE PARA INICIAL
CUENTO EL TIGRILLO DESOBEDIENTE PARA INICIALCUENTO EL TIGRILLO DESOBEDIENTE PARA INICIAL
CUENTO EL TIGRILLO DESOBEDIENTE PARA INICIAL
 
El Liberalismo económico en la sociedad y en el mundo
El Liberalismo económico en la sociedad y en el mundoEl Liberalismo económico en la sociedad y en el mundo
El Liberalismo económico en la sociedad y en el mundo
 
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIACONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
 
Sesión: El fundamento del gobierno de Dios.pdf
Sesión: El fundamento del gobierno de Dios.pdfSesión: El fundamento del gobierno de Dios.pdf
Sesión: El fundamento del gobierno de Dios.pdf
 
PRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernández
PRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernándezPRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernández
PRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernández
 
Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...
Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...
Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...
 
Mapa_Conceptual de los fundamentos de la evaluación educativa
Mapa_Conceptual de los fundamentos de la evaluación educativaMapa_Conceptual de los fundamentos de la evaluación educativa
Mapa_Conceptual de los fundamentos de la evaluación educativa
 
corpus-christi-sesion-de-aprendizaje.pdf
corpus-christi-sesion-de-aprendizaje.pdfcorpus-christi-sesion-de-aprendizaje.pdf
corpus-christi-sesion-de-aprendizaje.pdf
 
3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...
3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...
3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...
 
Horarios Exámenes EVAU Ordinaria 2024 de Madrid
Horarios Exámenes EVAU Ordinaria 2024 de MadridHorarios Exámenes EVAU Ordinaria 2024 de Madrid
Horarios Exámenes EVAU Ordinaria 2024 de Madrid
 
Fase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría AnalíticaFase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría Analítica
 
HABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdf
HABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdfHABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdf
HABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdf
 
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
 
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNETPRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
 
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
 
El fundamento del gobierno de Dios. Lec. 09. docx
El fundamento del gobierno de Dios. Lec. 09. docxEl fundamento del gobierno de Dios. Lec. 09. docx
El fundamento del gobierno de Dios. Lec. 09. docx
 
1º GRADO CONCLUSIONES DESCRIPTIVAS PRIMARIA.docx
1º GRADO CONCLUSIONES DESCRIPTIVAS  PRIMARIA.docx1º GRADO CONCLUSIONES DESCRIPTIVAS  PRIMARIA.docx
1º GRADO CONCLUSIONES DESCRIPTIVAS PRIMARIA.docx
 

Programación III (Java) - 07 Eventos

  • 1. 7. Gestión de eventos con AWT/Swing Qué es Gestión de Eventos El hilo Swing Modelo de Eventos Java Jerarquía de Eventos Clases anónimas y Adapters Ejemplos Programación III Tema 6 - Ventanas
  • 2. Modelos de Gestión de Eventos • Programación Tradicional: – No existen modelos de gestión de eventos. – Programa: Mediante un bucle (polling) – Ejemplo: Si se pulsa ENTER, sólo se detecta si se hace un getChar() • Programación en Java (y en otros lenguajes actuales) – Programación multihilo implícita (2 threads) • Un flujo de control para el programa, otro para las ventanas – Modelos de eventos definidos – El programa es "avisado" automáticamente de todas aquellas acciones (eventos) en los que esté interesado. • Para ello debe definirse previamente qué acciones “interesa escuchar” • El flujo de control que ejecuta el evento es el de las ventanas – Ejemplo: Si el usuario pulsa un botón, el entorno es capaz de avisar al programa haciendo una llamada a un método. Para ello, el botón (el origen del evento) debe conocer al programa (el escuchador del evento). Programación III Tema 6 - Ventanas
  • 3. ¿Qué hace (el hilo) Swing? • En cuanto se crea y visualiza la primera ventana, Swing se encarga de: – "Pintar" las ventanas • Las redibuja si se redimensionan, cambian, se pone una por delante... – Gestionar el ratón y el teclado con relación a las ventanas – Generar los eventos necesarios • Pulsaciones de botones • Paso de ratón por los componentes • Cambios en ventanas • etc. Programación III Tema 6 - Ventanas
  • 4. Modelo de Eventos Java (1) • Distingue dos elementos: – Fuentes de Eventos: elementos sobre los que se producen los eventos (botón, lista, panel...) • Cualquier componente de AWT (o SWING) sobre el que se puedan producir eventos (prácticamente todos) – Escuchadores de Eventos: elementos que reciben las notificaciones de los eventos • Cualquier objeto (perteneciente a una clase) que implemente alguno de los interfaces definidos en Java para la notificación de los eventos. • Funcionamiento: – Una “Fuente de Eventos” puede tener asignado un “Escuchador de Eventos” (o varios) que recibirá las notificaciones de sus eventos. – Cuando se produce un evento sobre la fuente de eventos, su escuchador es informado. – Para ello, se invoca el método que el escuchador tenga definido para la notificación de ese tipo de evento. – El escuchador, dentro de ese método, contendrá el código necesario para tratar ese evento. • ¿Cómo se asigna un escuchador a una fuente de eventos? <FuenteEvento>.add<EventoListener>( <Obj.Escuchador> ) Programación III Tema 6 - Ventanas
  • 5. Modelo de Eventos Java (2): Ej. Programación III Tema 6 - Ventanas
  • 6. Modelo de Eventos Java (3): Interfaces • Interfaces para la notificación de eventos – Interfaces que contienen métodos (que reciben un objeto evento) que serán invocados cuando se produzca un determinado tipo de evento. – Cada interfaz está especializado en capturar un tipo de eventos determinado. – Lista de algunas Interfaces y sus métodos: Interfaz Métodos ActionListener actionPerformed(ActionEvent) FocusListener focusGained, focusLost(FocusEvent) TextListener textValueChanged(TextEvent) KeyListener keyPressed, keyReleased, keyTyped(KeyEvent) MouseListener mouseClicked, mousePressed, mouseReleased, mouseEntered, mouseExited(MouseEvent) MouseMotionListener mouseDragged, mouseMoved(MouseEvent) WindowListener windowActivated, windowClosed, windowClosing, windowDeactivated, windowDeiconified, windowIconified, windowOpened(WindowEvent) Programación III Tema 6 - Ventanas
  • 7. Jerarquía de Eventos (1) – Los métodos de las interfaces, además de ser llamados, reciben un objeto evento que contiene la información que pueda ser relevante. – Los objetos de tipo “Evento” están organizados en una jerarquía de clases de eventos: Programación III Tema 6 - Ventanas
  • 8. Jerarquía de Eventos (2) – Padre de todos los eventos: EventObject – Padre de eventos gráficos: AWTEvent – Cada objeto posee información sobre el evento concreto que se ha producido. • Obtención de la información de un evento: – Cada tipo de evento posee métodos para consultar la información del evento ocurrido. Ejemplos: • Clase EventObject – getSource(): devuelve el objeto (fuente) sobre el que se ha producido el evento • Clase ActionEvent – getModifiers(): información variada sobre el evento (por ejemplo, comb. de teclas pulsadas –shift, alt-) • Clase MouseEvent – getModifiers(): información variada sobre el evento (p ej. el botón pulsado) – getX() y getY(): coordenada pulsación de ratón – getClickCount(): número de clicks seguidos efectuados Programación III Tema 6 - Ventanas
  • 9. Jerarquía de Eventos (3) – Cada fuente de eventos, generará distintos tipos posibles de eventos: Componente Evento Hecho que lo genera Button ActionEvent El usuario hace un clic sobre el botón Checkbox ItemEvent El usuario selecciona o deselecciona el Checkbox List ActionEvent El usuario hace doble click sobre un elemento de la lista ItemEvent El usuario selecciona o deselecciona un elemento de la lista Component MouseEvent El usuario pulsa o suelta un botón del ratón, el cursor del ratón entra o sale o el usuario mueve o arrastra el ratón FocusEvent El componente gana o pierde el foco KeyEvent El usuario pulsa o suelta una tecla TextField ActionEvent El usuario termina de editar el texto (hace un intro) Window WindowEvent La ventana se abre, se cierra, se minimiza, se reestablece o se cierra. Programación III Tema 6 - Ventanas
  • 10. Ej. (1): Ventana y escuchador • Ventana con un botón y una etiqueta. Cuando se pulse el botón queremos que en la etiqueta se visualice la fecha y hora actual. • Pasos: – Crear la ventana y todos sus componentes. – Crear un objeto escuchador que sea capaz de atender a los eventos generados al pulsar un botón. • Evento generado: ActionEvent • Interfaz que posee los métodos para atender ese evento: ActionListener – Asignar ese escuchador al botón. – Incorporar el código a ejecutar cuando se pulse el botón. Ejemplo: VentanaBoton Programación III Tema 6 - Ventanas
  • 11. Ejemplos (1b): Hilos • Aprovechando este ejemplo, veamos cómo funcionan esos dos hilos – A la vez que el main() sigue haciendo cosas – Un evento las puede hacer también • Escribir a un TextArea – Cálculo – Botón Programación III Tema 6 - Ventanas
  • 12. Ej (2): Escuchador = Ventana • ¿Quién debe ser el escuchador? Hay multitud de enfoques. – Puede ser una clase que ya hayamos creado (recordar que se pueden implementar tantas interfaces como se quiera). Por ejemplo la propia ventana. public class VentanaBotonEscuchador extends JFrame implements ActionListener – Puede ser otra clase completamente nueva que sólo se encargue de ser escuchadora. El principal problema está en acceder a la información/recursos que se puedan necesitar para tratar el evento correctamente. – Clase anónimas. Clases que ya proporciona Java que permiten una gestión simple y limpia de los eventos. Un enfoque sencillo aunque sorprendente a primera vista. Ejemplo: VentanaBotonEscuchador Programación III Tema 6 - Ventanas
  • 13. Ej (3): Escuchador de varios eventos – Ejemplo: ventana con tres botones y una etiqueta. – Si tres botones un mismo escuchador ¿cómo saber en el actionPerformed( ) el botón pulsado? – Solución: alternativa sobre el evento public void actionPerformed(ActionEvent e) { JButton botonPulsado = (JButton)e.getSource(); if (botonPulsado == boton1) etiqueta.setText("Se ha pulsado el botón 1"); if (botonPulsado == boton2) etiqueta.setText("Se ha pulsado el botón 2"); if (botonPulsado == boton3) etiqueta.setText("Se ha pulsado el botón 3"); } Ejemplo: VentanaBotones Programación III Tema 6 - Ventanas
  • 14. Ej (4): Varios eventos desde dist tipo – Tenemos una ventana con tres botones, una caja de texto y una etiqueta. – En este caso, ¿cómo averiguamos si el elemento sobre el que se produce el evento es un botón o la caja de texto? – Del mismo modo ... boton3.addActionListener(this); texto.addActionListener(this); ... public void actionPerformed(ActionEvent e) { Object elemento = e.getSource(); ... if (elemento == texto) etiqueta.setText(“Texto rellenado: " + texto.getText()); ... Ejemplo: VentanaBotonesTexto Programación III Tema 6 - Ventanas
  • 15. Ej (5): Conocer el tipo de comp. • Si en algún momento necesitásemos conocer el tipo al que pertenece alguno de los objetos, podríamos hacer Object elemento = e.getSource(); if (elemento instanceof JButton) { System.out.println("El elemento es un botón"); JButton boton = (JButton)elemento; } if (elemento instanceof JTextField) { System.out.println("El elemento es de texto"); JTextField cajaTexto = (JTextField)elemento; } • ¿Qué ventaja ofrece esta última opción? • Ejemplo Completo • Botones (lo ya visto) • Ratón sobre un panel. Evento: MouseEvent - Interfaz: MouseListener • Eventos de ventana (cerrar, minimizar, maximizar...) – Evento: WindowEvent - Interfaz: WindowListener – Acción a realizar: cerrar la ventana y terminar el programa. Ejemplo: VentanaEventos Programación III Tema 6 - Ventanas
  • 16. Adapters (1/2) • Cuando un listener tiene muchos eventos, como por ejemplo el MouseListener, hay que redefinir todos los métodos, aunque sólo se necesite uno de ellos. • Para evitar esto, el API ofrece una clase Adapter para cada listener, en donde ya están redefinidos los métodos del interfaz listener correspondiente. • Podemos utilizar una clase que herede de un Adapter para el tratamiento de los eventos de una forma más cómoda. • Esta clase debe ser interna al JFrame, para poder acceder a sus elementos. Ejemplo: VentanaEventosConAdapter Programación III Tema 6 - Ventanas
  • 17. Adapters (2/2) • Esta clase interna, también se puede definir de forma anónima: this.addWindowListener( new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); • Muchos entornos de desarrollo, que generan código de manera automática para la gestión de eventos, lo hacen utilizando una clase interna y anónima. Ejemplo: VentanaEventosConAdapterAnonimo Programación III Tema 6 - Ventanas
  • 18. Nota: patrón Observer • El concepto de escuchador responde a un patrón de diseño más general: Observer – Un objeto, llamado sujeto, mantiene una lista de sus objetos observadores – Cada vez que hay un determinado cambio de estado en el sujeto, este notifica a sus observadores • Llamando a un método particular • Pasando información con sus parámetros – Suele concretarse en cumplir un interfaz • Se puede hacer con punteros a función en otros lengs. Programación III Tema 6 - Ventanas
  • 19. Ejemplos de Observer – Objeto/operación que progresa • IProgresa{ void progresa( double p ); } – Objeto/operación que acaba • IAcaba{ void acabo(); } – Objeto/estructura que se puede recorrer • IProcesaRecorrido{ void procesa( Object o ); } – Objeto que muta/cambia • IMutacionListener{ void haMutado( ... ); } • Posible ejemplo: carpeta de disco – Recorrido de ficheros - progresa + opera + acaba – Observador de carpeta que cambia (sus fichs.) Programación III Tema 6 - Ventanas
  • 20. Ejemplo Observer (cont) public class ProcesoFicheros public ProcesoFicheros( String path ) ... public void recorre( IProcesaRecorrido rec, IProgresa prog, IAcaba fin ) ... public void addCambioCarpetaListener( ICambioCarpListener esc ) ... } – En el recorrido llamará a: • rec.procesa( <cada fichero> ) • prog.progresa( <% de vez en cuando> ) • fin.acabo() // al final – Al añadir un escuchador de cambio llamará a: • esc.haCambiado( <info de cambio> ) // cada cambio Programación III Tema 6 - Ventanas
  • 21. Concurso: ProcesoFicheros • Premio para el mejor: ¡1,5 puntos! – Posibles "accesits" para otros mejores • Fecha tope: 18 de noviembre • Condiciones – Interfaz visual ventana para seguir la búsqueda • Lanzamiento de búsqueda - config. de path • Barra de progreso • Información de ficheros encontrados • Lanzamiento de escucha / info. popup de cambios – Todo el código propio excepto uso de API Java6 – Bien documentado javadoc Programación III Tema 6 - Ventanas