0% encontró este documento útil (0 votos)
51 vistas4 páginas

Applets Diapositivas

El documento habla sobre los applets de Java. Explica que los applets son pequeños programas Java que se ejecutan en el navegador web del cliente, a diferencia de las páginas estáticas de HTML. Los applets permiten crear interfaces gráficas dinámicas e interactivas en las páginas web. Para programar un applet, se debe extender la clase Applet de Java y sobrescribir sus métodos como init(), start(), stop() y paint().
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
51 vistas4 páginas

Applets Diapositivas

El documento habla sobre los applets de Java. Explica que los applets son pequeños programas Java que se ejecutan en el navegador web del cliente, a diferencia de las páginas estáticas de HTML. Los applets permiten crear interfaces gráficas dinámicas e interactivas en las páginas web. Para programar un applet, se debe extender la clase Applet de Java y sobrescribir sus métodos como init(), start(), stop() y paint().
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Programación Orientada a Objetos (3 curso, grupo 2, tarde) 19 Marzo, 2001

7. Applets

Páginas web estáticas

Applets

Páginas web estáticas: html Páginas web dinámicas

Navegador web § Texto con formato


§ Multimedia: imágenes, sonido, plug-ins
§ Hipertexto (links)
sin estado

§
Clientes

Ejecución de programas en el servidor (CGI's)


§ Funcionalidades básicas de interfaz de usuario:
botones, campos, etc.

.html .html

Cliente Servidor
3 4

Páginas html dinámicas: html + Java Applets


Navegador web
§ Páginas dinámicas: § Se ejecutan desde un navegador de páginas web (i.e. un browser de html)
– Se ejecuta código (cálculos, animaciones, etc.) Netscape 2.0+ es compatible con JDK 1.1, plug-in para JDK 1.2
– Interfaz gráfica plena (botones, menús, dibujar,
§ No requieren definir main (applets vs. aplicaciones stand-alone)
eventos, etc.)
El navegador es quien invoca los métodos del applet
§ El código se ejecuta en la máquina cliente
– Se evita sobrecargar la CPU del servidor § Se definen creando una subclase de [Link]
– Se evita el tráfico de datos y resultados por la red class A extends Applet {...}
§ El navegador crea objetos de las clases de applets y los gestiona
.html .html
.class .class llamando a los métodos init, start, stop, destroy, paint
applet applet § Programar un applet = sobreescribir estos métodos
§ Una vez definido un applet A, se puede incluir en un documento html con
<applet code="[Link]" width=500 height=20> </applet>
Directorio del fichero .class: document base, codebase y packages
Cliente Servidor
5 6

Pablo Castells E.T.S. Informática, Universidad Autónoma de Madrid


Programación Orientada a Objetos (3 curso, grupo 2, tarde) 19 Marzo, 2001
7. Applets

Los métodos propios de Applet


Ejemplo
§ init(): inicialización, papel equivalente a un constructor
Invocado al cargar la página (en algunos browsers tb. al cargar de nuevo) [Link]
§ start(): ejecuta las acciones del applet (a menudo iniciando threads) import [Link];
Invocado al cargar y volver a cargar import [Link];

§ stop(): detener las acciones iniciadas con start() public class HelloWorld extends Applet {
public void paint (Graphics g) {
Invocado al abandonar la página, minimizar la ventana o cerrar el navegador
[Link] ("Hello world!", 50, 25);
§ destroy(): clean-up adicional además de stop() }
}
Invocado al cerrar el navegador
§ Métodos heredados: paint, update, repaint

7 8

[Link]
<HTML>
<HEAD> <TITLE> A Simple Program </TITLE> </HEAD>
Carga de un applet
<BODY>
§ La JVM del navegador carga el fichero .class indicado en <applet...>,
Here is the output of my program:
<APPLET CODE="[Link]" WIDTH=150 HEIGHT=25> accediendo a él a través de la red si no es local
</APPLET>
§ El navegador crea una instancia de la subclase de applet definida en el
</BODY>
</HTML> fichero .class
§ El navegador invoca el método init() sobre el objeto creado
§ El navegador invoca el método start() sobre el objeto creado
§ Si el applet utiliza una clase auxiliar:
1. El navegador comprueba si la clase ya está cargada en el cliente
2. Si no lo está, la busca en el servidor de la página html
§ Cuando la ventana del navegador se actualiza, invoca al método paint
del applet
9 10

...
public void init () {

Ejemplo
buffer = new StringBuffer ();
addItem ("initializing... ");
}
import [Link]; public void start () { addItem ("starting... "); }
public void stop () { addItem ("stopping... "); }
import [Link];
public void destroy () {
public class Simple extends Applet { addItem ("preparing for unloading...");
StringBuffer buffer; }
void addItem (String newWord) { public void paint (Graphics g) {
[Link] (newWord); //Draw a Rectangle around the applet's display area.
[Link] (newWord); Standard output:
[Link] (0, 0, getSize () .width - 1,
repaint (); Java-console
del navegador getSize () .height - 1);
} //Draw the current string inside the rectangle.
... [Link] ([Link] (), 5, 15);
}
11 } 12

Pablo Castells E.T.S. Informática, Universidad Autónoma de Madrid


Programación Orientada a Objetos (3 curso, grupo 2, tarde) 19 Marzo, 2001
7. Applets

Un applet es una interfaz gráfica AWT


§ Dibujar: paint, update, repaint de [Link]
§ Añadir widgets: add, remove, setLayout de [Link]
§ Respuesta a input del usuario:
Implementar p.e. [Link]
Funciones de dibujo
Object Component
Respuesta a eventos del usuario

Añadir componentes
Container
Gestionar layout

Layout por defecto: [Link]


Panel
(centrado con salto de línea)

Applet Respuesta a eventos del navegador

§ Un applet no requiere crear una ventana: utiliza la del navegador


§ Un applet tiene tamaño fijo, no se puede cambiar
13 14

Respuesta a eventos: ejemplo


public class Click extends Simple implements MouseListener {
public void init () {
addMouseListener (this);
buffer = new StringBuffer (); Método de
Component
addItem ("initializing... ");
}
public void mouseClicked (MouseEvent event) {
addItem ("click!... "); Método de
} MouseListener
public void mouseEntered (MouseEvent event) { }
public void mouseExited (MouseEvent event) { }
public void mousePressed (MouseEvent event) { }
public void mouseReleased (MouseEvent event) { }
}
15 16

Hilos en applets: ejemplo


public class Counter extends Applet implements Runnable {
Hilos y applets boolean running = false; int counter = 0;
public void run () {
while (running) {
repaint ();
§ Un applet puede pertenecer a múltiples hilos try { [Link] (1000); }
catch (InterruptedException e) {}
§ Muchos navegadores asignan un hilo para cada applet de una página html }
§ Un applet puede lanzar varios hilos en start() }
public void paint (Graphics g) {
§ Si un applet tiene una tarea que consume mucho tiempo, conviene [Link] ([Link] (++counter), 5, 15);
}
realizarla en el método run() de un hilo public void start () {
if (!running) {
running = true;
new Thread (this) .start ();
}
}
public void stop () { running = false; }
17 } 18

Pablo Castells E.T.S. Informática, Universidad Autónoma de Madrid


Programación Orientada a Objetos (3 curso, grupo 2, tarde) 19 Marzo, 2001
7. Applets

Otras funcionalidades de los applets


§ Parámetros: papel similar a argumentos de main o de constructor Seguridad
– <applet ...> <PARAM NAME=param1 VALUE=valor>... <\applet>
– Método getParameter(String) de Applet § Restricciones para los applets remotos: the sandbox policy
§ Procedencia del applet – No pueden leer ni escribir en el disco local (cliente)
– getCodeBase()
→ [Link] – No pueden cargar clases java locales
– getDocumentBase()
– No pueden definir métodos nativos ni arrancar programas en el cliente
§ La interfaz [Link]
– Sólo pueden realizar conexiones al servidor del que proceden
– Applet: getAppletContext() → AppletContext
– AppletContext: showDocument(URL), showStatus(String), § Diferencias de unos navegadores a otros
getApplet(String) § Para superar las restricciones: comunicarse con un programa que se
§ Sonido: la interfaz [Link] ejecute en el servidor y realice las funciones deseadas
– Applet: play(URL), getAudioClip(URL) → AudioClip
– AudioClip: play(), loop(), stop()
19 20

Pablo Castells E.T.S. Informática, Universidad Autónoma de Madrid

También podría gustarte