Está en la página 1de 5

APPLET EN JAVA

En Java, un applet es un programa que puede incrustarse en un documento HTML, es decir en una página web. Cuando un navegador carga una página web que contiene un applet, este se descarga en el navegador web y comienza a ejecutarse. Esto permite crear programas que cualquier usuario puede ejecutar con tan solo cargar la página web en su navegador.

Observaciones: Con un navegador de internet suelen usar versiones antiguas de Java por lo que se debe actualizar la máquina virtual java si es necesario para lo cual se puede

accesar a la siguiente dirección de internet: https://www.java.com/es/download/manual.jsp

Características de los Applets:

Los applets son objetos Java que:

• Presentan una ventana gráfica para su ejecución • Tienen un conjunto bien definido de operaciones que:

• Les permiten formar parte de otros programas y estar integrado en páginas web • Permiten por tanto crear páginas web dinámicas • Tienen algunas restricciones especiales:

• No tienen operación main() • Están gobernados por eventos • Entrada/Salida es diferente a la de las aplicaciones

Ventajas

Los applets de Java suelen tener las siguientes ventajas:

Son multiplataforma (funcionan en Linux, Windows, Mac OS, y en cualquier

sistema operativo para el cual exista una Java Virtual Machine). El mismo applet puede trabajar en "todas" las versiones de Java, y no sólo en la

última versión del plugin. Sin embargo, si un applet requiere una versión posterior del Java Runtime Environment (JRE), el cliente se verá obligado a descargar la nueva JRE. Es compatible con la mayoría de los navegadores web.

Puede ser almacenado en la memoria caché de la mayoría de los navegadores web, de modo que se cargará rápidamente cuando se vuelva a cargar la página web, aunque puede quedar atascado en la caché, causando problemas cuando se publican nuevas versiones.

Desventajas

Los applets de Java suelen tener las siguientes desventajas:

Requiere el plugin de Java, que no está disponible por omisión en todos los

navegadores web. No puede iniciar la ejecución hasta que la JVM esté en funcionamiento, y esto

puede tomar tiempo la primera vez que se ejecuta un applet. Si no está firmado como confiable, tiene un acceso limitado al sistema del usuario -

en particular no tiene acceso directo al disco duro del cliente o al portapapeles. Algunas organizaciones sólo permiten la instalación de software a los

administradores. Como resultado, muchos usuarios (sin privilegios para instalar el plugin en su navegador) no pueden ver los applets. Un applet podría exigir una versión específica del JRE.

Puede tener vulnerabilidades que permitan ejecutar código malicioso.

Estructura de un Applet

import java.awt.*; import java.applet.*; public class AppletUmg extends Applet {

String mensaje; public void init() {

mensaje=" Universidad ";

} public void start() {

mensaje=mensaje+" Mariano Galvez de Guatemala ";

} public void paint(Graphics g) {

g.drawString(mensaje,80,10);

}

}

Insertar un Applet en una Página Web

<html> <head> <title> Ejemplo de Applet </title> </head> <body>

<applet codebase="Directorio" code=" AppletUmg.class" width=300

height=200>

</applet>

</body>

</html>

Donde:

  • - codebase: directorio donde se encuentran el Applet con extensión .class

  • - code: nombre del applet.class

  • - width, height: ancho y alto de la ventana

Observación: Si el Applet se encuentra en la misma carpeta de la página html, solo basta Usar: <applet code = " AppletUmg.class " width=300 height=200>

</applet>

Applets Gobernados Por Eventos Eventos

Los eventos son sucesos que el Sistema Operativo detecta relacionados con el programa, Ejemplo: la entrada/salida, y el sistema de ventanas:

eventos de ratón: mover, hacer click, ... eventos de teclado: pulsar o liberar una tecla eventos de acción: pulsación de un botón o menú eventos de texto: cambiar el valor de una entrada de texto eventos de ventana: cerrar una ventana, abrirla,minimizarla ... • etc.

En un programa gobernado por eventos:

Hay operaciones que gestionan eventos • El applet está esperando a que llegue un evento • Cuando el Sistema Operativo detecta un evento llama a la operación asociada a ese evento • La operación debe atender y terminar prontamente dicho evento • La operación no debe esperar a que algo ocurra, por ejemplo que suceda otro evento antes de ser atendido el anterior. • El usuario es el que inicia la acción.

En un programa gobernado por eventos : • Hay operaciones que gestionan eventos • E l

Dibujando sobre un applet

La salida se hace dibujando sobre un entorno gráfico desde el Método paint()

  • - drawString(mensaje, c, f)

  • - drawLine(c,f,c,f)

  • - drawRect(c,f, ancho,alto)

  • - drawOval(c,f, ancho,alto)

  • - drawArc(c, f, ancho, alto, anguloInicial, anguloBarrido)

  • - drawPolygon (c[], f[], numPuntos)

Todas las coordenadas son en pixels, siendo (0,0) la esquina superior izquierda Ángulos en grados, 0=horizontal

Ejemplo:

import java.awt.*; import java.applet.*; public class Dibujo extends Applet {

public void init() { } public void start() { } public void paint(Graphics g) {

g.drawString("UNIVERSIDAD MARIANO GALVEZ DE GUATEMALA",50,10); //Texto

}

g.drawLine(50,15,325,15);

g.drawOval(75,20,200,100);

g.drawOval(100,35,20,20);

g.drawOval(140,35,20,20);

g.drawArc(100,30,60,60,210,120);

g.drawRect(75,120,200,25);

int columna[] = {125, 225,125, 225};

int

fila[] = {145, 145,300, 300};

g.drawPolygon(columna,fila,4);

}

//Dibujando Linea //Dibujando Ovalo Grande //Dibujando Ovalo Pequeño, ojo izquierdo

//Dibujando Ovalo Pequeño, ojo derecho //Dibujando Archo, boca //Dibujando Rectangulo //Estableciendo puntos en y, columnas

//Estableciendo puntos en x, filas

//Dibujando el Poligono en base a los puntos y,x

Etiquetas y botones

Las etiquetas son ventanas de la clase Label con un texto, que se pueden añadir a un applet (con add()).

Los botones de la clase Button, además de lo anterior, producen un evento de “acción” al ser pulsados hay que programar el applet para que atienda a eventos de acción; para ello:

  • - Se debe implementar ActionListener

  • - Se debe tener una operación actionPerformed(), que atiende a todos los eventos de Acción

  • - Hay que indicar que los eventos del botón son atendidos por el applet, esto se logra con la operación addActionListener()

Ejemplo:

import java.awt.*; import java.applet.*; import java.awt.event.*; public class Contador extends Applet implements ActionListener {

Label mens; Button incr,decr; int cuenta=0; public void init() {

mens=new Label ("Contador: "+cuenta); incr=new Button("Incrementar"); decr=new Button("Decrementar"); add(incr); add(decr); add(mens); incr.addActionListener(this); decr.addActionListener(this);

} public void actionPerformed(ActionEvent ev) {

String str = ev.getActionCommand(); if (str.equals("Incrementar")) {

cuenta++;

} else if(str.equals("Decrementar")) {

cuenta--; } mens.setText("Contador: "+cuenta);

} public void start() { } public void paint(Graphics g) { }

}

Entradas de Texto

Son objetos de la clase TextField que presentan una ventana en pantalla en la que se puede teclear un texto Se pueden añadir a un applet • Se puede leer su valor con getText() • Generan eventos de tipo texto

Ejemplo:

import java.awt.*; import java.applet.*; import java.awt.event.*; public class Temperatura extends Applet implements ActionListener {

Label mens; Button af,ag; TextField temp; public void init() {

mens=new Label (" "); af=new Button("A Fahrenheit"); ag=new Button("A Grados"); temp= new TextField("0.0"); add(af); add(ag); add(temp); add(mens); af.addActionListener(this); ag.addActionListener(this);

} public void actionPerformed(ActionEvent ev) {

try {

double tempActual=Double.parseDouble(temp.getText()); String str = ev.getActionCommand(); if (str.equals("A Fahrenheit")) {

mens.setText("Temperatura "+tempActual+" C = "+(tempActual*1.80+32.0)+" F");

} else if (str.equals("A Grados")) { mens.setText("Temperatura "+tempActual+" F = "+ ((tempActual-32.0)/1.80)+" C"); }

}

catch (NumberFormatException e) { mens.setText("Error"); }

} public void start() { } public void paint(Graphics g) { } }//Fin de la clase Temperatura

Espero les pueda servir de mucho, este material preparado con bastante aprecio a los alumnos del curso de Programación Avanzada, secciones Ay B

Atentamente:

Ingeniero Haroldo Herlindo Turcios García Catedrático UMG