Applets y Aplicaciones En JAVA es posible crear dos tipos de programas: Applets Son pequeños programas que requieren de un browser W 3 JAVA-compatibe para ejecutarse (actualmente, Netscape, Microsoft Explorer, HotJava). Las Applets se hacen disponibles mediante páginas web descriptas en el lenguaje HTML (HyperText Markup Language ). Se usa el tag <APPLET> para proveerle al browser información sobre el applet (tamaño, parámetros). Para el browser W 3, un applet es como cualquier otro objeto de la página web (imágenes, audio, video). Cuando se accede a una página web que tiene un Applet incorporado, éste se carga automáticamente desde un servidor HTTP y, se ejecuta en la computadora del cliente. Aplicaciones Son programas que no requieren de un browser W 3 para ejecutarse. Son aplicaciones stand-alone. El método main es el punto de entrada de una aplicación JAVA. El método main controla el flujo del programa, aloca los recursos necesarios y, ejecuta los métodos que proveen la funcionalidad de la aplicación.
Applets y Aplicaciones Las Applets y las Aplicaciones requieren de la plataforma JAVA para ejecutarse. Sin embargo, las Applet requieren que la plataforma JAVA esté embebida en el browser W 3 y, las Aplicaciones requieren que la plataforma JAVA esté disponible como un programa separado ó embebido en el SO. Las Applets requieren de una red para ejecutarse, mientras que las Aplicaciones no. En general, las Applets como las Aplicaciones acceden a las mismas funcionalidades del lenguaje: acceso a bases de datos, procesamiento local, etc. Las Aplicaciones tienen acceso ilimitado a los recursos del sistema. Las Aplicaciones pueden leer y escribir sobre cualquier File System. Sin embargo, las Applets al ser cargadas a través de la red están restringidas a acceder solamente al File System del servidor de origen.
Incluyendo un applet en una página HTML <HTML> <HEAD> <TITLE>Un programa Simple</TITLE> </HEAD> <BODY> <img src="http://163.10.10.5/dibu.gif" align=bottom> <APPLET CODE= HolaMundo.class WIDTH=150 HEIGHT=25> </APPLET> </BODY> </HTML> Algunos atributos del tag <APPLET>: CODEBASE CODE WIDTH HEIGHT ALT NAME PARAM... Especifica el directorio o URL que contiene las applets Especifica el nombre del archivo.class que contiene el applet Especifica el ancho de la ventana del applet Especifica el alto de la ventana del applet Especifica el texto que se mostrará en un browser Especifica un nombre para la instancia applet Especifica parámetros para el applet
Especificando el directorio del Applet Referencias Relativas al archivo HTML <APPLET CODE= MiApplet.class WIDTH=150 HEIGHT=50> </APPLET> <APPLET CODE= com.miempresa.miproyecto.miapplet.class WIDTH=150 HEIGHT=50> </APPLET> <APPLET CODE= com.miempresa.miproyecto.miapplet.class CODEBASE= Laboratorio WIDTH=150 HEIGHT=50> </APPLET> Referencias Absolutas <APPLET CODE= com.miempresa.miproyecto.miapplet.class CODEBASE= http://unservidor/.../undirectorio WIDTH=150 HEIGHT=50> </APPLET> Directorio X Archivo HTML MiApplet.class Directorio X Laboratorio Archivo HTML com miempresa Algún directorio de UnServidor miproyecto com Directorio X miempresa MiApplet.class Archivo HTML miproyecto MiApplet.class
Jeraquía de Herencia de un Applet Las applets se crean como una subclase de la Clase Applet. java.lang.object java.awt.component java.awt.container java.awt.panel Funcionalidad de GUI ( Presentación y manejo de eventos ) Funcionalidad para la comunicación con el Browser java.applet.applet MiApplet
Definiendo un Applet simple import java.applet.applet; import java.awt.graphics; public class HolaMundo extends Applets { public void paint(graphics g) { g.drawstring( Hello World, 50, 25); Las sentencias import permiten que la clase HolaMundo use las clases Applet y Graphics sin ningún prefijo. Un Applet debe definirse como subclase de Applet, heredando una amplia funcionalidad para comunicarse con el Browser y para presentar la GUI. Las Applets deben implementar al menos uno de los siguientes métodos: init, start o paint. A diferencia de las aplicaciones, las Applets no implementan el método main. El método paint es un método básico de presentación. Se usa para dibujar la representación del applet dentro de la ventana del browser. El objeto gráfico g pasado como parámetro al método paint representa el área de dibujo del applet y el método drawstring dibuja sobre ella.
Se abandona la página Ciclo de Vida del Applet El ciclo de vida del Applet comprende los pasos que se llevan a cabo desde el momento en que el Applet es cargado por el browser W 3 hasta que es inaccesible. Start Init Applet Cargado Se visita una página Descarga del Applet Destroy Stop
Métodos Milestones Estos métodos permiten la comunicación de las Applets y el Browser W 3. Son invocados automáticamente por el browser W 3. void init(): se invoca una vez que el applet se cargó en el sistema. Es útil para inicializaciones de variables de instancia. void start(): se invoca para comunicarle al applet que comience la ejecución. Éste método es invocado despúes del init() y, cada vez que la página que contiene al applet es revisitada. void stop(): se invoca para comunicarle al applet que debe interrumpir su ejecución. Típicamnete, éste método es invocado cuando la página que contiene el applet es abandonada. De ésta forma se disminuye el consumo de recursos del sistema. void destroy(): se invoca para que el applet libere los recursos del sistema alocados. Se invoca despúes de invocar al stop(). No todo Applet debe sobreescribir todos éstos métodos. Es posible no sobreescribir ninguno de ellos.
El Applet Simple import java.applet.applet; import java.awt.graphics; public class Simple extends Applet { StringBuffer buffer; public void init() { buffer = new StringBuffer(); agregaitem("inicializando... "); public void start() { agregaritem( comenzando... "); public void stop() { agregaritem( parando... "); public void destroy() { agregaritem("preparando para descargar..."); void agregaritem(string newword) { System.out.println(newWord); buffer.append(newword); repaint(); public void paint(graphics g) { //Dibuja un rectángulo alrededor del applet g.drawrect(0, 0, getsize().width - 1, getsize().height - 1); //Escribe el string g.drawstring(buffer.tostring(), 5, 15);
Métodos para dibujar y manejar eventos de la GUI Para implementar la apariencia -mínima- en la pantalla de un applet se sobreescriben los siguientes métodos, heredados de la clase java.awt.component: paint(): es el método básico para presentar información en la pantalla. SACAR: muchas applets implementan el paint para dibujar la representación del applet en la ventana del browser.!!! update(): es un método que se usa con el paint() para mejorar la performance para dibujar. SACAR: limpia e invoca al paint(). El manejo de los eventos generados a partir de las acciones del usuario sobre los objetos de la UI son heredados de la clase java.awt.component: addmouselistener addkeylistener addactionlistener etc. Estos métodos registran objetos como listeners. Los objetos listeners son notificados cada vez que ocurre un evento. Los objetos listeners implementan alguna interfaz como por ejemplo: MouseListener, KeyListener, ActionListener, etc.
Completando el Applet Simple import java.applet.applet; import java.awt.graphics; import java.awt.event.mouselistener; import java.awt.event.mouseevent; public class Simple extends Applet implements MouseListener { StringBuffer buffer; public void init() {... addmouselistener(this); public void destroy() {...; void agregaritem(string newword) {...; public void paint(graphics g) {...; public void mouseclicked(mouseevent event){ additem( click!!! ); public void start() {...; public void stop() {...;