Investigacion de Topicos Avanzados de Programacion

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

FIN. singularmente de los relacionados con el movimiento del ratón. F1. etc. Otros valores que puede tomas son los de las teclas especiales como INICIO. Alt. etc. 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 de pantalla de alto nivel o una ventana con borde y título. pulsación de un botón.1. creación/movimiento/destrucción de partes gráficas y. es la tecla que se ha pulsado. por último. los referidos a acciones del usuario respecto de componentes (elección de un menú. Para objetos Button. que se indicará en el miembro id de su estructura. y: Las coordenadas en donde se ha producido el evento relativas al Componente que actualmente está procesando ese evento. Su valor será el valor Unicode del carácter que representa la tecla. F2. ejemplo barra de menu) o un dialogo.  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.1 TIPOS DE EVENTOS CLASE EVENT Un contenedor soltado en un entorno gráfico se convierte en rápido receptor de eventos de todo tipo. pulsaciones de teclas. 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. Los datos miembro de la clase 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. El origen se toma en la esquina superior izquierda del Componente  key: Para eventos de teclado. Sólo tiene importancia en los eventos MOUSE DOWN  arg: Es un argumento dependiente del evento.). Intenta capturar las características fundamentales de todos los eventos que genera el usuario. La clase Event es el jugador principal en el juego de los eventos.  ClickCount: El número de clicks de ratón consecutivos. Ctrl.    WINDOW DESTROY WINDOW EXPOSE WINDOW ICONIFY   WINDOW DEICONIFY WINDOW MOVED .

Eventos de Barras Son los eventos generados como respuesta a la manipulación de barras de desplazamiento (scrollbars).   MOUSE DOWN MOUSE UP   MOUSE MOVE MOUSE ENTER   MOUSE EXIT MOUSE DRAG 3. Eventos de Ratón Son los eventos generados por acciones sobre el ratón dentro de los límites de un Componente.    ACTION EVENT LOAD FILE SAVE FILE   GOT_FOCUS (cursor sobre el objeto) LOST_FOCUS (peder cursor) . Eventos Varios Son los eventos generados en función de diversas acciones. Eventos de Teclado Son generados en respuesta a cuando el usuario pulsa y suelta una tecla mientras un Componente tiene el foco de entrada.1.   KEY PRESS KEY RELEASE   KEY ACTION KEY ACTION RELEASE 2.    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.

Cada Componente del applet añade una línea al objeto TextArea indicando que ha recibido un evento.1. El sistema Java pasa información del evento a un Componente a través del método handleEvent() del Componente. componente a componente. Este control comienza por el Componente que recibe inicialmente el evento (por ejemplo. o que no ha sido controlado en su totalidad y debe continuar su propagación hacia arriba en el árbol de Componentes. hasta que alcanza al Contenedor de la raíz del árbol. . el sistema Java crea una instancia de la clase Event y rellena su dato miembro con la información necesaria para describir la acción. El valor devuelto por el método handleEvent() es importante. Un valor false indica que el evento ha sido ignorado. Durante este camino. el botón que ha sido pulsado) y se desplaza hacia arriba en el árbol de Componentes. El sistema Java continúa de este mismo modo hasta que el evento es controlado en su totalidad o ya no hay Componentes a los que informar. 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 la clase Event que contiene la información del evento que se ha producido. Indica al sistema Java si el evento ha sido o no completamente controlado por el controlador.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 otro programa). En la figura siguiente mostramos el camino recorrido por el evento en su intento de que algún Componente lo controle. cada Componente tiene oportunidad de ignorar el evento o reaccionar ante él en 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. Un valor true indica que el evento ha sido controlado y que su propagación debe detenerse. Luego permite que el evento se propague al siguiente Componente. Es en ese momento cuando el sistema Java permite al applet controlar el evento.

La figura siguiente presenta los elementos que conforman este applet en forma de árbol. con el TextArea y Button como hojas y la instancia de Applet como raiz. Esta instancia está a su vez embebida dentro de otra instancia de la clase Panel. Esta última instancia de la clase Panel está situada junto a una instancia de la clase TextArea. . embebidas dentro de una instancia de la clase Panel. y ambas están embebidas dentro de una instancia de la clase Applet.EJEMPLO Consta de dos instancias de la clase Button.

Sign up to vote on this title
UsefulNot useful