Usuario:ManuelRomero/eventos

Eventos

 * Un 'evento' es una acción o suceso que ocurre sobre un objeto que es sensible a dicha acción
 * Ejemplo de un evento
 * Hacer un click sobre un botón
 * pasar el cursor del ratón por encima de un elemento de mi pantalla
 * Un porceso le envía una señal a la impresora de que quiere imprimir
 * Es típico de la programación visual que esté conducida por eventos
 * Ahora el programa ya no tiene una secuación lógica de instrucciones para se ejecutada, no sigue un camino marcado
 * El programa presenta una interfaz gráfica una serie de elementos gráficos u objetos
 * El usuario de la aplicación en función de lo que quiera hacer realiza acciones en la interfaz gráfica
 * La interfaz gráfica identifica esas acciones o eventos y ejecuta código asociado a dichas acciones
 * Por lo tanto la ejecución del programa dependerá de los eventos que se vayan produciendo, el programa se presenta como una interfaz que está esperando a que ocurran enventos, ocurre un evento ejecuto un código asocido de alguna manera a dicho evento y de nuevo el programa se queda en estado de espera a que ocurra otro evento

Delegación de eventos en Java
No todos los entornos de desarrollo gestionan los eventos de igual manera. Java realiza la gestión de eventos delegando, y se conoce como 'delegacion de eventos' por qué se conoce con este nombre: hasta ahora vemos en este escenario dos elementos: el evento que se produce El objeto sobre el que se produce el evento que es quien va a generarlo esta frase no nos debe confundir. Efectivamente el evento se ha producido por que un usuario a realizado una acción sobre un objeto, es el usuario el que ha originado o provocado el evento, pero en el sistema el evento lo va a generar el objeto sobre el que se ha producido.pongamos un ejemplo para verlo.

Evento, y source del evento
Tengo un botón de timbre. una persona (usuario) llega a la puerta y presiona el botón del timbre (objeto) y el timbre provoca un ruido (evento) Podemos analizar el escenario y observar: (usuario) quien ha provocado el evento Por lo tanto tenemos tres objetos
 * 1 elemento externo a mi programa
 * dentro del programa tendo dos elemntos
 * Evento que se produce suena el timbre 
 * Objeto source de dicho evento ''el bóton genera un sonido de timbre'
 * Ahora pueden ocurrir dos cosas: siguiendo con el ejemplo (suponemos que es el timbre de una casa)
 * Que no hay nadie dentro de casa y el sonido se pierde, nadie lo oye y por lo tanto nadie hace nada
 * Que hay una persona dentro de casa y está escuchando oye el sonido del tiembre y actua abriendo la puerta
 * Que hay una persona en casa pero no está escuchando ya que por ejemplo lleva cascos (En realidad es igual que el caso primero, es como si no hubiera)
 * Entonces aparece el concepto de delegación de eventos
 * El botón ha generado el evento ring y este delega el evento en un escuchador
 * si hay un objeto escuchando a ese objeto actuará en consecuencia
 * si no hay objeto escuchando o lo hay pero no lo hace a ese objeto, el evento se pierde, (nadie actúa ante él)
 * El Source
 * Es el objeto en el que se produce la acción y que genera un evento p.e. botón


 * El Event
 * Es el objeto evento que se ha producido


 * El Listener
 * Es el objeto escuchador encargado de percibir y comunicar que se han producido enventos

Por este funcionamiento el java los evento funcionan por lo que se llama la delegación de eventos

Gestion de eventos en Java
En java tengo clases especializadas en escuchar eventos Todas ellas son interfaces, por lo tanto tengo que implementarlas Un escuchador se puede incorporar de tres formas diferentes Esta no se usa mucho por ser un poco larga, sí la usan los asistentes de diseño como vermeos más adelante class Interfaz extends JFrame implements ActionListener Veamos el siguiente ejemplo El equivalente haciendo una clase interna
 * Pasar una instancia de la clase asociándolo directameten a un objeto al que tiene que escuchar
 * Que la clase actual implemente el listener Se suele usar mucho por comodidad
 * Crear una clase interna que cree el listener La más interesante sobre todo al principio