Post on 19-Jul-2015
5/17/2018 Investigacion de Topicos Avanzados de Programacion - slidepdf.com
http://slidepdf.com/reader/full/investigacion-de-topicos-avanzados-de-programacion 1/5
Instituto Tecnológico de Cuautla.Tema:
1.1 Tipos de eventos
1.2 Generación y propagación de eventos
Asignatura:
Tópicos Avanzados de Programación.
Docente:
Mtra. Claudia Itsel Casique García.
Alumno(s):
José Alberto Ruiz García.
Fecha de entrega: 02 de Febrero de 2012
5/17/2018 Investigacion de Topicos Avanzados de Programacion - slidepdf.com
http://slidepdf.com/reader/full/investigacion-de-topicos-avanzados-de-programacion 2/5
1.1 TIPOS DE EVENTOS
CLASE EVENT
Un contenedor soltado en un entorno gráfico se convierte en rápido receptor de eventos de todotipo, singularmente de los relacionados con el movimiento del ratón, pulsaciones de teclas,creación/movimiento/destrucción de partes gráficas y, por último, los referidos a acciones del
usuario respecto de componentes (elección de un menú, pulsación de un botón, etc.).
La clase Event es el jugador principal en el juego de los eventos. Intenta capturar lascaracterísticas fundamentales de todos los eventos que genera el usuario. Los datos miembro de laclase Event son los que se indican a continuación:
Id: El tipo de evento que se ha producido
target: Componente sobre el que se ha producido el evento
x, y: Las coordenadas en donde se ha producido el evento relativas al Componente que
actualmente está procesando ese evento. El origen se toma en la esquina superior izquierda
del Componente
key: Para eventos de teclado, es la tecla que se ha pulsado. Su valor será el valor Unicode
del carácter que representa la tecla. Otros valores que puede tomas son los de las teclas
especiales como INICIO, FIN, F1, F2, etc.
when: Instante en que se ha producido el evento
modifiers: La combinación aritmética del estado en que se encuentran las teclas
modificadoras Mays, Alt, Ctrl.
ClickCount: El número de clicks de ratón consecutivos. Sólo tiene importancia en loseventos MOUSE DOWN
arg: Es un argumento dependiente del evento. Para objetos Button, este objeto arg es un
objeto String que contiene la etiqueta de texto del botón
evt: El siguiente evento en una lista encadenada de eventos
TIPOS DE EVENTOS
Los eventos se catalogan por su naturaleza, que se indicará en el miembro id de su estructura. Los
grandes grupos de eventos son:Eventos de Ventana
Son los que se generan en respuesta a los cambios de una ventana un frame (Es una superficie depantalla de alto nivel o una ventana con borde y título, ejemplo barra de menu) o un dialogo.
WINDOW DESTROY WINDOW EXPOSE WINDOW ICONIFY
WINDOW DEICONIFY WINDOW MOVED
5/17/2018 Investigacion de Topicos Avanzados de Programacion - slidepdf.com
http://slidepdf.com/reader/full/investigacion-de-topicos-avanzados-de-programacion 3/5
1. Eventos de Teclado
Son generados en respuesta a cuando el usuario pulsa y suelta una tecla mientras unComponente tiene el foco de entrada.
KEY PRESS KEY RELEASE
KEY ACTION KEY ACTION RELEASE
2. Eventos de Ratón
Son los eventos generados por acciones sobre el ratón dentro de los límites de un Componente.
MOUSE DOWN MOUSE UP
MOUSE MOVE MOUSE ENTER
MOUSE EXIT MOUSE DRAG
3. Eventos de Barras
Son los eventos generados como respuesta a la manipulación de barras de desplazamiento(scrollbars).
SCROLL LINE UP SCROLL LINE DOWN SCROLL PAGE UP
SCROLL PAGE DOWN SCROLL ABSOLUTE
4. Eventos de Lista
Son los eventos generados al seleccionar elementos de una lista.
LIST_SELECT LIST_DESELECT
5. Eventos Varios
Son los eventos generados en función de diversas acciones.
ACTION EVENT LOAD FILE SAVE FILE
GOT_FOCUS (cursor sobre el objeto) LOST_FOCUS (peder cursor)
5/17/2018 Investigacion de Topicos Avanzados de Programacion - slidepdf.com
http://slidepdf.com/reader/full/investigacion-de-topicos-avanzados-de-programacion 4/5
1.2 Generación y propagación de eventos
Cuando un usuario interactúa con el applet (aplicación que se ejecuta en el contexto de otroprograma), el sistema Java crea una instancia de la clase Event y rellena su dato miembro con lainformación necesaria para describir la acción. Es en ese momento cuando el sistema Java permiteal applet controlar el evento. Este control comienza por el Componente que recibe inicialmente elevento (por ejemplo, el botón que ha sido pulsado) y se desplaza hacia arriba en el árbol de
Componentes, componente a componente, hasta que alcanza al Contenedor de la raíz del árbol.Durante este camino, cada Componente tiene oportunidad de ignorar el evento o reaccionar ante élen una (o más) de las formas siguientes:
Modificar los datos miembros de la instancia de Event Entrar en acción y realizar cálculos basados en la información contenida en el evento Indicar al sistema Java que el evento no debería propagarse más arriba en el árbol
El método handleEvent() es un lugar para que el programador pueda insertar código para controlar los eventos.
El sistema Java pasa información del evento a un Componente a través del método handleEvent() del Componente. Todos los métodos handleEvent() deben ser de la forma:
public boolean handleEvent( Event evt )
Un controlador de eventos solamente necesita una información: una referencia a la instancia de laclase Event que contiene la información del evento que se ha producido.
El valor devuelto por el método handleEvent() es importante. Indica al sistema Java si el evento hasido o no completamente controlado por el controlador. Un valor true indica que el evento ha sidocontrolado y que su propagación debe detenerse. Un valor false indica que el evento ha sidoignorado, o que no ha sido controlado en su totalidad y debe continuar su propagación hacia arribaen el árbol de Componentes.
El sistema Java continúa de este mismo modo hasta que el evento es controlado en su totalidad oya no hay Componentes a los que informar. En la figura siguiente mostramos el camino recorridopor el evento en su intento de que algún Componente lo controle.
Cada Componente del applet añade una línea al objeto TextArea indicando que ha recibido unevento. Luego permite que el evento se propague al siguiente Componente.
5/17/2018 Investigacion de Topicos Avanzados de Programacion - slidepdf.com
http://slidepdf.com/reader/full/investigacion-de-topicos-avanzados-de-programacion 5/5
EJEMPLO
Consta de dos instancias de la clase Button,embebidas dentro de una instancia de la clasePanel. Esta instancia está a su vez embebidadentro de otra instancia de la clase Panel. Estaúltima instancia de la clase Panel está situada
junto a una instancia de la clase TextArea, yambas están embebidas dentro de una instanciade la clase Applet.
La figura siguiente presenta los elementos queconforman este applet en forma de árbol, con elTextArea y Button como hojas y la instancia deApplet como raiz.