Download Tema 8. Applets

Document related concepts
no text concepts found
Transcript
Tema 8. Applets
„
¿Qué es un applet?
„
„
„
„
„
Características
Métodos de un applet
Inclusión de un applet en una página
HTML
Ejemplo
Threads en applets
1
¿Qué es un applet?
„
Aplicación que se ejecuta en un navegador al
cargar una página HTML
„
„
„
Los ficheros de Java compilados (*.class) se
descargan desde el servidor hasta el navegador en
cuya JVM se ejecutan
El applet se ejecuta en la ventana del navegador
(en un Panel).
Los applets tienen importantes restricciones de
seguridad
„
Sólo pueden leer y escribir ficheros en el servidor del que
provienen
2
Características de un applet
„
Jerarquía de clases:
„
java.lang.Object
„
java.awt.Component
„
java.awt.Container← java.awt.Panel ← java.applet.Applet
Todos los applets derivan de java.applet.Applet
No tiene un main() con el que comienza la ejecución
Debe redefinir métodos heredados de Applet que controlan su
ejecución:
„ init(), start(), stop(), destroy()
Hereda los métodos gráficos de Component, y la capacidad de
añadir componentes de interface de usuario los hereda de
Container y de Panel
Suele redefinir el método gráfico paint()
„
„
„
„
„
3
Métodos de ejecución
„
„
„
„
„
Los métodos que controlan la ejecución de los applets son
llamados por el navegador
Método init()
„ Se llama cuando el navegador carga el applet
„ Se ocupa de las tareas de inicialización
Método start()
„ Se llama cuando el applet se hace visible después de haber
sido inicializado, o tras haber estado oculto
„ Se utiliza para crear threads para determinadas tareas
Método stop()
„ Se llama al ocultar el applet
„ Se utiliza para detener threads
Método destroy()
„ Se llama cuando el applet va a ser destruido, con la
finalidad de que libere recursos
4
Métodos gráficos
„
„
Un applet es una aplicación gráfica que aparece en
una zona de la ventana del navegador
Debe redefinir el método gráfico paint():
„
„
„
„
public void paint(Graphics g)
Todo el trabajo gráfico se debe incluir en este método
Es llamado al mostrar el applet por 1ª vez y cada vez que
hay que redibujarlo
Para volver a dibujar el applet se utiliza el método
repaint()
„
Este método llama a update(), que borra todo y luego
llama a paint()
5
Inclusión de un applet en una
página HTML
„
„
Para incluir un applet en una página HTML se utiliza
la etiqueta: <APPLET...>...</APPLET>
Forma general:
<APPLET CODE = Clase.class
WIDTH=pixeles HEIGHT=pixeles
[ALT = “texto alternativo”]>
[<PARAM NAME=“Parametro1” VALUE=“valor1”]
[<PARAM NAME=“Parametro2” VALUE=“valor2”]
</APPLET>
„
El valor de los parámetros se obtiene con el método
de la clase Applet:
„
String getParameter(String name);
6
Ejemplo (i)
import java.awt.*;
import java.applet.*;
public class EjemploApplet1
extends Applet
{
private String texto;
private Color colorFondo;
private Color colorTexto;
private Font fuente;
public void init()
{
texto = getParameter("texto");
fuente = new Font("Courier new",
Font.BOLD, 14);
colorFondo = new Color(255,255,0);
colorTexto = new Color(0,0,255);
}
public void paint(Graphics g)
{
g.setColor(colorFondo);
g.fillRect(0,0,getSize().width,getSize().height);
g.setColor(colorTexto);
g.setFont(fuente);
g.drawString(texto,10,20);
}
7
}
Ejemplo (ii)
EjemploApplet1.html:
<APPLET code = EjemploApplet1.class WIDTH=400 HEIGHT=200>
<PARAM NAME="texto" VALUE="Primer ejemplo de Applet">
</APPLET>
Visualización:
9 appletviewer EjemploApplet1.html
9 navegador
8
Threads en applets
import java.awt.*;
import java.applet.*;
public class AppletThread extends
Applet implements Runnable
{
private Thread hilo = null;
public void init(){}
public void start()
{
if(hilo==null){
// crea el hilo
hilo=new Thread(this);
hilo.start(); // lanza el hilo
}
}
public void run()
{
Thread hiloActual=Thread.currentThread();
while(hilo==hiloActual){
// tarea repetitiva
}
}
public void stop()
{
hilo=null;
}
public void paint(Graphics g){ }
}
9