0% encontró este documento útil (0 votos)
33 vistas30 páginas

Applet 2010

Un applet es un programa Java que se puede incluir en páginas HTML. Los applets heredan de la clase Applet y tienen ciclos de vida que incluyen métodos como init(), start() y paint(). El documento describe un applet de reloj digital que usa un Timer para actualizar periódicamente la hora mostrada llamando al método paint().

Cargado por

Heraldo Ubilla
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)
33 vistas30 páginas

Applet 2010

Un applet es un programa Java que se puede incluir en páginas HTML. Los applets heredan de la clase Applet y tienen ciclos de vida que incluyen métodos como init(), start() y paint(). El documento describe un applet de reloj digital que usa un Timer para actualizar periódicamente la hora mostrada llamando al método paint().

Cargado por

Heraldo Ubilla
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
Está en la página 1/ 30

Applet

Profesor Ibar Ramirez Varas


Agenda
⇨ Introduccióna applets
⇨ Mi primer applet – HelloWorldApplet.java
⇨ Más sobre applets
⇨ Applet animado – reloj digital
¿Qué son los Applets?

⇨ Un applet es un programa especial en Java


que puede ser empotrado en documentos
HTML.
⇨ Es automáticamente ejecutado por el web
browsers (habilitado para applet).
⇨ En Java, los programas que no incluyen ap-
plet son llamadas aplicaciones.
Aplicaciones vs. Applet
 Aplicación
 Verdadera (es decir, tiene acceso completo a los recursos
del sistema).
 Invocada por Java Virtual Machine (JVM, java), es decir,
java HelloWorld
 Debería contener un metodo main, es decir,
public static void main(String[])
 Applet
 No verdadera (es decir, tiene un acceso limitado a los
recursos del sistema para prevenir infracciones de
seguridad)
 Invocado automáticamente por el web browser
 Debería ser una subclase de la java.applet.Applet
Ejemplo
HelloWorld.java

public class HelloWord {


public static void main(String[] args) {
System.out.println(“Hello, World!”);
}
}

HelloWorldApplet.java
Primer Applet de Java
Fuente de Java en HelloWorldApplet.java
import java.awt.*;
import java.applet.Applet;
public class HelloWorldApplet extends Applet {
public void paint(Graphics g) {
Dimension d = getSize();
g.setColor(Color.BLACK);
g.fillRect(0, 0, d.width, d.height); // paint background
g.setFont(new Font("San-serif", Font.BOLD, 24));
g.setColor(new Color(255, 215,0));
g.drawString("Hello, world!", 60, 40);
g.drawImage(getImage(getCodeBase(), “Rabbit.jpg"),
20, 60, this);
}
}
Coordenada Gráfica

(0,0) x

height

width
Applet empotrado en HTML
Fuente HTML en HelloWorld.html

<!--HelloWorld.html-->
<html>
<head>
<title>HelloWord</title>
</head>
<body>
<center>
<applet code="HelloWorldApplet.class"
width=300 height=350></applet>
</center>
<hr/>
<a href="HelloWorldApplet.java">The source.</a>
</body>
</html>
Compilar y Ejecutar

⇨ Para compilar
javac HelloWorldApplet.java
Produce HelloWorldApplet.class
⇨ Para ejecutar
Abrir la página HelloWorld.html desde el browser
web
Use appletviewer de JDK
appletviewer HelloWorld.html
Elementos de un Applets
⇨ Super clase: java.applet.Applet
⇨ No tiene método main
⇨ Method paint para dibujar
⇨ Tag Applet: <applet> </applet>
code
width y height
La Clase Applet

java.awt.Panel

java.applet.Applet

destroy()
init()
start()
stop()
Ciclo de vida de un Applet
 init()
 Llamado exactamente una vez en la vida de un
applet.
 Llamado cuando el applet es cargado por primera
vez, el cual es llamado después de la creación del
objeto; es decir, cuando el browser visita la página
por la primera vez.
 Usado para leer los párametros del applet, parte
cargando alguna imagen o archivos de medias,
etc.
Ciclo de vida de un Applet (Cont.)
 start()
 Llamado al menos una vez.
 Llamado cuando un applet esta partiendo o es
reiniciado, es decir, cuando el browser visits the
web page.
 stop()
 Llamado al menos una vez.
 Llamado cuando el browser deja la pagina web.
Ciclo de vida de un Applet (Cont.)
 destroy()
 Llamado exactamente una vez.
 Llamado cuando el browser descarga el applet.
 Usedo para ejecutar alguna limpieza final.

init

start destroy
stop

start
Applet Animado --- Reloj Digital

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.Calendar;

public class DigitalClock


extends java.applet.Applet {

<Fields>
<Methods>
}

Un applet debe ser una subclass de java.applet.Applet.


Estructura del Programa
java.applet.Applet

DigitalClock
1
javax.swing.Timer

+ start(): void <<use>>


java.util.Calendar
+ stop(): void
+ paint(g: Graphics) : void

<<use>> <<use>>

java.awt java.awt.event
Métodos para el Reloj Digital

⇨ public void start(){...}


invocado cuando ingresamos a la página web que
contiene el applet
⇨ public void stop(){...}
invocado cuando dejamos la página web que con-
tiene el applet
⇨ public void paint(Graphics g){...}
dibuja la figura
Inicialización Objeto

public DigitalClock() {
timer = new Timer(1000, createTimerTickHandler());
}

protected ActionListener createTimerTickHandler() {


return new ActionListener() {
public void actionPerformed(ActionEvent event) {
repaint();
}
};
}
Los métodos start()y stop

public void start() {


timer.start();
}

public void stop() {


timer.stop();
}

Parte y detiene el timer


Detener el timer podría no ocupar tiempo de CPU.
El método paint()

public void paint(Graphics g) {


Calendar calendar = Calendar.getInstance();
int hour = calendar.get(Calendar.HOUR_OF_DAY);
int minute = calendar.get(Calendar.MINUTE);
int second = calendar.get(Calendar.SECOND);
g.setFont(font);
g.setColor(color);
g.drawString(hour / 10 + hour % 10 +
":" + minute / 10 + minute % 10 +
":" + second / 10 + second % 10,
10, 60);
}
¿Cuándo llamar al método paint?

 Timer ticks and calls


ActionListener.actionPerformed()
 ActionListener.actionPerformed()llama
a DigitalClock.repaint()
 DigitalClock.repaint() llama a
DigitalClock.paint()
 El método paint() usualmente no es llamado
directamente.
Drawing Strings

g.drawString("A sample string", x, y)


HTML

<!-- DigitalClock.html -->


<html>
<head>
<title>Digital Clock Applet</title>
</head>
<body bgcolor=black>
<h1>The Digital Clock Applet</h1><p>
<applet code=DigitalClock.class width=250 height=80>
</applet>
<p><hr>
<a href=DigitalClock.java>The source</a>
</body>
</html>
The java.awt.Color Class

 Instances of the Color class represent colors.


new Color(r, g, b)

where r, g, b are the values of the red, green, and blue


components, respectively. They are in the in the range
of 0 to 255.
 Predefined constants
BLACK ORANGE YELLOW BLUE GREEN PINK
CYAN LIGHTGRAY RED ARKGRAY MAGENTA
WHITE
The java.awt.Font Class

Fonts are specified with three attributes:

font name:
Serif Sans-serif Monospaced Dialog DialogInput
TimesRoman Helvetica Courier

font style:
PLAIN BOLD ITALIC
Styles can be combined: Font.BOLD|Font.ITALIC
 font size: a positive integer
 A font can be created as follows:
new Font(name, style, size)
Field Declarations

protected Timer timer;


protected Font font =
new Font("Monospaced", Font.BOLD, 48);
protected Color color = Color.GREEN;
Object Initialization

public DigitalClock() {
timer = new Timer(1000, createTimerTickHandler());
}

protected ActionListener createTimerTickHandler() {


return new ActionListener() {
public void actionPerformed(ActionEvent event) {
repaint();
}
};
}
The start() and stop()
Methods

public void start() {


timer.start();
}

public void stop() {


timer.stop();
}

 Start and stop the timer


 Stopped timer will not consume CPU time.
The paint() Method

public void paint(Graphics g) {


Calendar calendar = Calendar.getInstance();
int hour = calendar.get(Calendar.HOUR_OF_DAY);
int minute = calendar.get(Calendar.MINUTE);
int second = calendar.get(Calendar.SECOND);
g.setFont(font);
g.setColor(color);
g.drawString(hour / 10 + hour % 10 +
":" + minute / 10 + minute % 10 +
":" + second / 10 + second % 10,
10, 60);
}
Who Calls the
paint()method?
 Timer ticks and calls
ActionListener.actionPerformed()
 ActionListener.actionPerformed()calls
DigitalClock.repaint()
 DigitalClock.repaint() calls
DigitalClock.paint()
 The paint() method is usually not called
directly.

También podría gustarte