Вы находитесь на странице: 1из 17

Modelo de eventos Applets

Jose Jesus Garca Rueda

Jose Jesus Garca Rueda

Modelo de eventos

Jose Jesus Garca Rueda

Introduccin

Creamos grficos... pero no podemos hacer nada con ellos. Evento: operacin que tiene como resultado una accin tras la intervencin del usuario. Los eventos forman parte del paquete java.awt.event. Hay que preparar al programa para responder a los eventos generados desde el exterior.

Jose Jesus Garca Rueda

Modelo de eventos de Java 1.1

En el modelo 1.1 los eventos slo se distribuyen entre los objetos que hayan sido registrados para recibirlos (escuchadores). Jerarquas involucradas:

Componentes grficos (Component) Eventos (AWTEvent) Escuchadores o adaptadores (Listener o Adapter)

Un objeto Listener puede marcar un evento como consumido, para que los dems lo ignoren si lo desean.

Jose Jesus Garca Rueda

Modelo de eventos de Java 1.1 (II)


Cada tipo de evento se corresponde con una interfaz listener. Hay una clase adapter para cada interfaz listener, que implementa de forma nula todos sus mtodos. Un objeto escuchador deber implementar todos los mtodos de la interfaz correspondiente.

Jose Jesus Garca Rueda

Modelo de eventos de Java 1.1 (III)

Ejemplos:

public class EscuchaTeclado implements KeyListener {...} public class EscuchaTeclado extends KeyAdapter {...}

Si el escuchador hereda de otra clase, o se desea que reciba varios tipos de eventos, no se podrn usar adaptadores (no se permite la herencia mltiple)

Jose Jesus Garca Rueda

Funcionamiento del modelo


Registrarlo (Ej: addListener) Componente (Ej: button) Aviso (Ej: actionPerformed(ActionEvent e) Listener Pregunta a ActionEvent

Jose Jesus Garca Rueda

Pasos a seguir
1.

Crear la clase oyente que implemente la interfaz Java

Ej. ActionListener: pulsar un botn

2.

Implementar en la clase oyente los mtodos de la interfaz

Ej. void actionPerformed(ActionEvent)

3.

Crear un objeto de la clase oyente y registrarlo como oyente en uno o ms componentes grficos que proporcionen interaccin con el usuario

Jose Jesus Garca Rueda

Ejemplo: VentanaSimple (I)

Jose Jesus Garca Rueda

Ejemplo: VentanaSimple (II)

Jose Jesus Garca Rueda

Salida ejemplo

Jose Jesus Garca Rueda

Metodologa para el tratamiento de eventos: alternativas


Crear una clase oyente interna (ver ejemplo) Crear una clase oyente independiente, construir una instancia y registrar sta en el componente deseado.

Se separa la parte grfica de la parte manejadora. Inconveniente: hay que pasar como parmetros del escuchador los elementos sobre los que vaya a actuar.

Que el propio componente grfico implemente el escuchador.

No hay que pasar referencias de objetos, pero el cdigo es menos legible.

Jose Jesus Garca Rueda

Eventos de bajo nivel

Aspectos fsicos de la interaccin con los elementos de la interfaz

ComponentEvent: cambios en tamao, posicin o visibilidad de un componente FocusEvent: cambio de foco KeyEvent: operacin con el teclado MouseEvent: operacin con botones del ratn o movimiento del ratn WindowEvent: cambio de estado de una ventana

Jose Jesus Garca Rueda

Eventos de alto nivel (o semnticos)


Operacin con un elemento de la interfaz. Tratan de capturar su significado.

ActionEvent: realizacin de la accin especfica asociada al compoente ChangeEvent: cambio en el estado de un componente ItemEvent: elemento seleccionado o deseleccionado

Jose Jesus Garca Rueda

API del modelo

Ejemplo 1

Interfaz ActionListener:

Cuando el usuario hace algo con un componente. Componentes grficos: Button, Button, List, List, MenuItem, MenuItem, TextField. TextField. Mtodo: addActionListener (ActionListener al) Clase de evento: ActionEvent. ActionEvent.

public String getActionCommand () public int getModifiers () public abstract void actionPerformed (ActionEvent e)

Mtodos:

Jose Jesus Garca Rueda

API del modelo Ejemplo 2

Interfaz ItemListener:

Como ActionListener pero para otros componentes. Componentes grficos: JCheckbox, JCheckboxMenuItem, JList. Mtodo: addItemListener (ItemListener il) Clase de evento: ItemEvent.

public ItemSelectable getItemSelectable () public Object getItem () public int getStateChange (): SELECTED o DESELECTED public abstract void itemStateChanged (ItemEvent e)

Mtodos:

Jose Jesus Garca Rueda

EJEMPLO

Escribir un programa que muestre por pantalla 3 botones, con las etiquetas respetivas: Jorgito, Juanito y Jaimito. Cada botn ser de un color diferente, pero del mismo tamao (50 x 30) Al pulsar a Jorgito, el fondo de la ventana cambiar de color: si est blanco, pasar a verde, y si est verde, pasar a blanco. Al pulsar a Juanito, el color de fondo cambiar a verde, y al pulsar a Jaimito, a blanco.

Jose Jesus Garca Rueda

Applets

Jose Jesus Garca Rueda

Introduccin

Analizaremos las clases de los paquetes java.applet y javax.swing y la manera de integrarlas en documentos Web. Las applets son programas en Java integrados en pginas Web. Para ser un applet, una clase debe ser subclase de Applet (en AWT) y de JApplet (en Swing)

Applet determina el ciclo de vida JApplet proporciona funcionalidad de contenedor de alto nivel (panel de contenidos y barra de men)

Jose Jesus Garca Rueda

La clase Applet

El constructor por defecto de las Applet no suele emplearse: las crea el navegador Web. Mtodos:

Correspondientes al ciclo de vida del applet. applet. Tratamiento de medios, eventos y entorno.

Jose Jesus Garca Rueda

10

Ciclo de vida de una applet y sus mtodos bsicos


Creacin Destruccin

Inicializacin

Arranque/rearranque

Parada

Jose Jesus Garca Rueda

Ciclo de vida de una applet y sus mtodos bsicos (II)


public void init (): Se puede considerar como el constructor de la applet. public void start (): Punto de entrada a la ejecucin de la applet. public void stop (): Cuando el usuario abandona la pgina Web. public void destroy (): Se llama al cerrar el navegador.

Jose Jesus Garca Rueda

11

Ciclo de vida de una applet y sus mtodos bsicos (III)

El mtodo paint permite la presentacin de datos en la pantalla.


public void paint (Graphics g)

Se invocar numerosas veces. Para hacerlo de forma explcita, se llama a al mtodo repaint() paint recibe como parmetro un objeto de la clase java.awt.Graphics, por lo que habr que importarla.

Jose Jesus Garca Rueda

Ciclo de vida de una applet y sus mtodos bsicos (IV)


Las applets no tienen mtodo main. Los nicos componentes grficos que no se pueden emplear en las applets son los que conforman los mens.

Jose Jesus Garca Rueda

12

La etiqueta HTML <APPLET>

Tras compilar el cdigo, hay que introducir una llamada a la applet en la pgina Web. Se utilizan los delimitadores:
<APPLET> .................. </APPLET>

Toda pgina HTML que contenga applets debera poseer mensajes alternativos (entre los dos delimitadores) para los navegadores que no admiten java.

Jose Jesus Garca Rueda

La etiqueta HTML <APPLET> Atributos de la etiqueta <APPLET> (I)

Los nicos obligatorios son CODE u OBJECT, WIDTH y HEIGTH

CODE = fichero bytecode que contiene la applet compilada OBJECT = AppletSerializable. Se trae la applet desde un fichero con una representacin serializada de la misma WIDTH = anchura de la applet en pantalla en pixels HEIGHT = altura en pixels

Jose Jesus Garca Rueda

13

La etiqueta HTML <APPLET> Atributos de la etiqueta <APPLET> (II)


<PARAM NAME = Atributo1 VALUE = valor1> <PARAM NAME = Atributo2 VALUE = valor2>... Es la forma de pasar parmetros a la applet. La applet puede acceder a ellos mediante getParameter(). Ejemplo:
<PARAM NAME=tiempo VALUE=medio> <PARAM NAME=velocidad VALUE=baja> <PARAM NAME=distancia VALUE=10>
Jose Jesus Garca Rueda

La etiqueta HTML <APPLET>


Utilizacin del appletviewer

Permite visualizar applets sin abrir el navegador.


appletviewer fichero.html

Para depurar errores es mejor que el navegador, pues genera mensajes ms explcitos.

Jose Jesus Garca Rueda

14

Pasos para el desarrollo de una applet (I)


1. 2. 3. 4.

Programar el cdigo (subclase de Applet) Compilar el fichero fuente Creacin de la pgina HTML Visualizacin Veamos un ejemplo que muestra un mensaje en pantalla

Jose Jesus Garca Rueda

Pasos para el desarrollo de una applet (II)

 Cdigo del applet: //Ejemplo bsico de una applet en Java import java.applet.*; import java.awt.*; import javax.swing.*; public class HolaCursillo extends JApplet { public void paint(Graphics g) { g.drawString(HolaCursillo!!,10,80) ;} }
Jose Jesus Garca Rueda

15

Pasos para el desarrollo de una applet (III)

Compilacin del fichero fuente: javac HolaCursillo.java Pgina HTML:


<HTML> <HEAD> <TITLE> Ejemplo de applet bsica </TITLE> </HEAD> <BODY> <APPLET CODE=HolaCursillo.class WIDTH=200 HEIGTH=200> Texto mostrado por los navegadores que no entienden Java </APPLET> </BODY> </HTML>

Salida ejemplo

Jose Jesus Garca Rueda

16

Ejemplo de applets

Convertir el programa de Jorgito, Jaimito y Juanito en un applet

Jose Jesus Garca Rueda

17

Вам также может понравиться