Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Applets
java.lang.Object
|+----java.awt.Component
| +----java.awt.Container
| +----java.awt.Panel
Com putadora N avegadorW eb
| +----java.applet.Applet
rem ota
Intérprete javax.swing.JApplet
Java
//MiApplet.java
Los applets consisten en definir una subclase de JApplet.
import java.swing.*;
class MiApplet extends JApplet { }
En esta subclase se redefinen algunos métodos de Applet
Anchura y altura (o heredados) como init() o start().
en píxeles
//MiApplet.html
<HTML> import javax.swing.*;
<HEAD><TITLE>Applet mínima</TITLE> </HEAD>
public class MiApplet extends JApplet {
<BODY>
<APPLET CODE="MiApplet.class" WIDTH=100 HEIGHT=50>
</APPLET> public void paint(Graphics g) {
</BODY> g.drawString("mi primer Applet", 25, 50);
</HTML> }
}
import javax.swing.*;
import java.awt.*; La clase Applet dispone de varios métodos sin código dentro,
a los que llama en diversas fases de su ciclo de vida (al crearse
public class Applet02 extends Japplet {
Container panel;
el applet, al redibujarse, al destruirse, etcétera).
JTextField cantidad; Si deseamos que nuestro applet haga cosas especiales en esos
JButton boton1,boton2; momentos deberemos sobreescribir esos métodos. Son éstos:
public void init() {
boton1 = new JButton("A Euros "); public class MiApplet extends JApplet {
boton2 = new JButton("A Pesetas");
public void init() { ... }
cantidad = new JTextField(18);
panel = this.getContentPane(); public void start() {... }
panel.add(cantidad); public void stop() { ... }
panel.add(boton1);
panel.add(boton2); public void destroy() { ... }
panel.setLayout(new FlowLayout()); //otros
}
} }
Añadir la respuesta a los botones
void init()
9 Este método se llama al crearse el applet y sólo se ejecuta
init(): Para inicializar el applet cada vez que se carga esa vez, y cada vez que se vuelve a cargar.
(o vuelve a cargar).
9 Se suele utilizar para inicializar variables globales y
los elementos del applet.
start(): Para iniciar la ejecución del applet, cuando se ha
9 Contiene el código que tendría un constructor.
cargado el applet o el usuario revisita la página del applet.
void start()
stop(): Para detener la ejecución del applet, al salir de la 9 Se invoca tras producirse una carga del applet con init().
página o del explorador.
9 ... y al revisitar una página que contiene un applet
previamente cargado.
destroy(): Para realizar una limpieza final antes de abandonar. 9 Inicia las tareas que debe realizar el applet.
width=anchura en pixeles
public class Applet03 extends JApplet {
height=altura en pixeles
private int x = 0; // Contador de llamadas a paint()
[archive=archivefile]
public void init() { }
[codebase=applet_url]
public void paint(Graphics g) {
[vspace=vertical_margin] x = x + 1; // Incremento cada vez que llamo a paint()
[hspace=horizontal_margin] g.drawString("llamadas a paint = " + x, 10, 80);
[align=applet_alignment] }
[alt=alternative_text] }
>
<PARAM name=param_name1 value=param_value1>
</APPLET>
public class Applet04 extends JApplet { public class Applet05 extends JApplet {
Container panel; int numInit = 0; int numStart = 0;
int numStop = 0; int numDestroy = 0;
private int x = 0;//atributo contador de llamadas a paint
int numPaint = 0;
public void init(){ public void init() { ++numInit; }
panel = this.getContentPane(); public void start(){ ++numStart; }
public void stop() { ++numStop; }
panel.add(new MiPanel());
public void destroy() { ++numDestroy; }
}
public void paint(Graphics g) {
class MiPanel extends JPanel{ ++numPaint;
g.drawString("Invocaciones a init(): " + numInit, 25, 25);
public void paintComponent(Graphics g) { g.drawString("Invocaciones a start(): " + numStart, 25,
super.paintComponent(g); 50);
x = x + 1; g.drawString("Invocaciones a stop(): " + numStop, 25, 75);
g.drawString("Invocaciones a destroy(): " +numDestroy, 25,
g.drawString("Llamadas a paintComponent = " + x, 10, 80); 100);
} g.drawString("Invocaciones a paint(): " +numPaint, 25,
} 125);
}
}
}
Mostrar un mensaje en una determinada posición. public class Applet07 extends JApplet {
El mensaje y la posición X,Y se obtienen del código HTML.
private String mensaje;
private int x = 20; // Coordenada x
<APPLET private int y = 20; // Coordenada y
code = "Applet07.class"
public void init() {
width = 200 MiPanel p = new MiPanel();
height = 200> Container pan = getContentPane();
<PARAM name = mensaje value = "Hola a todos"> pan.add(p);
}
<PARAM name = X value = 20>
<PARAM name = Y value = 70>
</APPLET>
M enu
Para crear un archivo JAR: jar cf jar-file archivos
Para ver el contenido de un archivo JAR: jar tf jar-file M enu.class audio im ages
Los archivos JAR pueden soportar muchas características, como Si hemos empaquetado una aplicación en un archivo JAR , tenemos
firma electrónica, control de versiones, sellado de paquetes, que indicar qué clase es la que tiene el método main().
las extensiones, etcétera. Esta información se indica en la cabecera Main-Class :
Toda la información útil se encuentra en el manifiesto de Main-Class: classname
los archivos JAR. El manifiesto es un archivos especial que puede
contener información sobre los otros archivos empaquetados en donde classname es el nombre de la clase con el método main().
el archivo JAR. Ejemplo (prueba.txt): Main-Class: Ejercicio4
Siempre que se crea un archivo JAR, automáticamente se asocia // Creamos el jar: jar cvf kiko.jar *
un archivo manifiesto que se puede modificar.
// Actualizamos el manifiesto:
Por ejemplo:
jar cmf prueba.txt kiko.jar Ejercicio4
Manifest-Version: 1.0
// Lo ejecutamos: java –jar kiko.jar
Created-By: Manifest JDK1.2