Download 1. ¿Cómo hacer un applet - Curso de Programación en Java

Document related concepts
no text concepts found
Transcript
1. ¿Cómo hacer un applet? ...............................................................................2
2. Implementación de un Applet (awt) ...............................................................3
3. Ejecución de los Applets ...............................................................................5
3.1 Hacer el archivo HTML con los siguientes datos .....................................5
3.2 Ejecución Desde línea de comandos (DOS)............................................5
.1 Localización del directorio del JDK con ayuda de la variable
JAVA_HOME .............................................................................................5
.2 Establecer la variable del sistema PATH que contiene la ruta de los
programas ..................................................................................................6
.3 Compilar el programa..........................................................................6
.4 Ejecutar el visualizador de applets (Appletviewer) ..............................6
.5 El resultado es: ...................................................................................6
3.3 Ejecución Desde un navegador ...............................................................7
3.3 Ejecución Desde TextPad........................................................................7
4. Creación de un JApplet .................................................................................8
5. Algunos limitaciones desde los navegadores..............................................10
6.Referencias ..................................................................................................10
Juan Carlos Castro Brenes
1. ¿Cómo hacer un applet?
Un applet es un programa escrito en Java que puede ser incluido en una página
HTML de una manera parecida a como se puede insertar una imagen. Cuando se utiliza
un navegador con tecnología Java habilitada, el código (de bytes) del applet es
transferido al sistema del cliente y entonces ejecutado por la máquina virtual del
browser.
Para hacer un applet hay que tener en cuenta lo siguiente:
Una clase que sea un applet debe heredar de Applet o bien de
JApplet.
El applet no necesita (aunque puede llevar) un constructor. Sin
embargo el constructor es lo primero que se ejecuta y en el
momento en que se ejecuta el constructor el Applet puede que no
tenga toda la información que se relaciona con él, como su
ubicación (método getCodeBase()) o la ubicación del documento
HTML que lo está ejecutando (getDocummentBase()).
Si va a utilizar JApplet necesita instalar una versión del JDK
igual o superior al 1.2 e instalar el plugin en el sistema. El plugin
normalmente se instala automáticamente.
Con esto en cuenta se harán en este documento un Applet y un JApplet.
2. Implementación de un Applet (awt)
En esta sección se hace un applet que realiza lo siguiente:
Carga una imagen.
Pone un botón que al hacer clic en el muestra un “hola mundo” en la
barra de estado.
/**
* Esta clase es un Applet que carga una imagen
* y muestra un mensaje en la barra de estado.
*/
import java.awt.event.*;
import java.applet.Applet;
import java.awt.*;
// Clases para manejo de eventos.
// Clase Applet, de la que se va a heredar.
// Clases del AWT
public class MiApplet extends Applet implements ActionListener{
/** Declaro el botón */
Button b_mensaje;
/** La imagen que voy a desplegar */
Image i_miImagen;
/** el mensaje que despliego */
String mensaje = "HOLA, VEN LA IMAGEN?";
/** El método init inicializa el Applet. */
public void init(){
b_mensaje = new Button("Decir Mensaje");
b_mensaje.addActionListener(this);
add(b_mensaje);
// cargo la imagen averiguando la dirección de la página en la
// que está el applet (getDocummentBase()) y en esa dirección
// tomo del directorio images, la imagen logojava.gif
i_miImagen = getImage(getDocumentBase(),"images/logojava.gif");
}
/** Manejador de eventos */
public void actionPerformed(ActionEvent e){
Object o = e.getSource();
if(o == b_mensaje){
showStatus(mensaje);
repaint();
}
}
/** El método que pinta */
/** Pinta información del Applet */
public void paint(Graphics g){
g.drawString("El Applet está en: " + getCodeBase(),5,50);
g.drawString("El HTML está en: " + getDocumentBase(),5,75);
g.drawString("La imagen
: ",5,100);
g.drawImage(i_miImagen,70,140,this);
}
}
En los applets del awt los componentes se añaden directamente con el método add, y no
hay problemas con el método paint(Graphics).
En Swing hay problemas a la hora de hacer un método paint que dibuje algo (como un
letrero) y a la vez desplegar componentes. La forma de solucionar el problema es
creando una clase que herede de JComponent y en método paint haga todos los dibujos
necesarios. Posteriormente se crea una instancia de esta clase y se añade al contenedor
(JPanel por ejemplo) deseado.
3. Ejecución de los Applets
3.1 Hacer el archivo HTML con los siguientes datos
Code: Es el nombre del archivo compilado del Applet.
Width: El ancho del applet.
Height: El alto del applet
El código HTML para MiApplet quedaría así:
<HTML>
<APPLET CODE="MiApplet.class" WIDTH=400 HEIGHT=300></APPLET>
</HTML>
Ahora se guarda esto en un archivo
MiPaginaParaElApplet.html por ejemplo.
con
extensión
HTML.
Nada más queda ver la forma en que se va a ejecutar el Applet.
3.2 Ejecución Desde línea de comandos (DOS)
.1 Localización del directorio del JDK con ayuda de la variable
JAVA_HOME
Cuando Windows arranca ejecuta una serie de programas que inicializan
algunas variables del sistema y eventualmente llaman a otros programas.
Uno de estos programas que se ejecuta es el archivo de procesamiento por lotes
llamado autoexec.bat. Este archivo normalmente se encuentra en la raíz del
directorio donde se instaló Windows (normalmente en c:\autoexec.bat).
Para añadir esta variable no se debe modificar nada de lo que hay ya escrito
en el autoexec.bat. A la hora de añadir la variable y suponiendo que su JDK
está instalado en el directorio C:\jdk1.2.0 deben agregar la siguiente línea a este
archivo:
C:\> set JAVA_HOME=C:\jdk1.2.0
Después de hacer esto se debe reiniciar la máquina y crear el archivo por lotes
que ejecutará la aplicación.
Nota. El directorio debe ser exactamente donde se instaló el JDK en su
máquina.
.2 Establecer la variable del sistema PATH que contiene la ruta de los
programas
Para que la consola de DOS pueda encontrar los archivos debe poner la variable
path apuntando a dicho directorio escribiendo en la ventana lo siguiente:
C:\> PATH=%PATH%;%JAVA_HOME%\bin
.3 Compilar el programa
C:\> javac MiApplet.java
.4 Ejecutar el visualizador de applets (Appletviewer)
Al visualizador se le envía como parámetro el nombre del archivo html
C:\> appletviewer MiPaginaParaElApplet.html
.5 El resultado es:
3.3 Ejecución Desde un navegador
Abra el archivo html con su navegador predeterminado (debe soportar Java y
habilitarlo si es necesario)
3.3 Ejecución Desde TextPad
Compilar el archivo con ctrl.+1
Ejecutar el applet con ctrl.+3
4. Creación de un JApplet
En esta sección se hace un JApplet que realiza lo siguiente:
Pone un botón con una imagen que al hacer clic en el muestra un “hola
mundo” en la barra de estado y un JTextArea con información de su
ubicación.
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
public class MiSwingApplet extends JApplet implements ActionListener{
/** Declaro el botón */
JButton b_mensaje;
/** Declaro el textArea */
JTextArea ta_areaDatos;
/** La imagen que voy a desplegar */
Image i_miImagen;
/** el mensaje que despliego */
String mensaje = "HOLA, VEN LA IMAGEN?";
/** El método init inicializa el Applet. */
public void init(){
// cargo la imagen averiguando la dirección de la página en la
// que está el applet (getDocummentBase()) y en esa dirección
// tomo del directorio images, la imagen logojava.gif
i_miImagen = getImage(getDocumentBase(),"images/logojava.gif");
b_mensaje = new JButton("Decir Mensaje",new ImageIcon(i_miImagen));
ta_areaDatos = new JTextArea(5,25);
b_mensaje.addActionListener(this);
getContentPane().setLayout(new FlowLayout(FlowLayout.CENTER));
// IMPORTANTE: Añadir los componentes al panel de
// contenido
getContentPane().add(b_mensaje);
getContentPane().add(new JScrollPane(ta_areaDatos));
}
/** Manejador de eventos */
public void actionPerformed(ActionEvent e){
Object o = e.getSource();
if(o == b_mensaje){
ponerInformacion();
showStatus(mensaje);
}
}
/** Muestra informacion en el textArea */
public void ponerInformacion(){
ta_areaDatos.setText("El Applet está en: " + getCodeBase()+"\n"+
"El HTML está en: " + getDocumentBase()+"\n");
}
}
Para correr el JApplet en el IE se les recomienda que consulten el documento del
convertidor HTMLConverter.
5. Algunos limitaciones desde los navegadores.
Un applet no puede escribir en un archivo. Se puede habilitar un archivo para
realizar escrituras sin embargo esto es una tarea avanzada a estas alturas.
Cuando se va a cargar una imagen debe utilizarse el método getImage() de la
clase Applet/JApplet. Hacerlo con el método getImage() de la clase Toolkit dará
problemas de seguridad.
Un applet no tiene que llevar llamadas como System.exit().
Para correr un JApplet en el navegador se tiene que convertir el HTML con el
convertidor que está en la página o bien habilitar por su cuenta en el HTML el
plugin para el Applet (tarea compleja a estas alturas).
6.Referencias
The JavaTM Tutorial http://java.sun.com/docs/books/tutorial/