Download INGENIERIA DE SISTEMAS

Document related concepts
no text concepts found
Transcript
APPLETS en JAVA
Las applets (miniaplicación) son programas escritos en Java que sirven para "dar vida" a las páginas Web
(interacción en tiempo real, inclusión de animaciones, sonidos...), de ahí su potencia.
Para trabajar con applets se debe importar el paquete (librería) java.applet.Applet.
La clase del programa que se quiere crear debe heredar de la clase Applet.
A continuación se muestran algunos ejemplos.
1. Programa que calcula el factorial de 1 número.
En el ejemplo que se muestra a continuación utilizamos clase del paquete awt (Button y TextField)
import java.applet.Applet;
import java.awt.*;
public class Factorial extends Applet
{
TextField t1=new TextField();
TextField t2=new TextField();
Button b=new Button("factorial");
public void init()
{
add(t1);
add(b);
add(t2);
}
Al igual que en los Frames, en los Applets se
pueden utilizar las clases de la librería awt
(Button, Label, TextField, etc.)
En los Applets se puede usar la función init(), esta
función es la primera función que se ejecuta en un Applet
 También podría ser el constructor de la clase
public boolean action(Event e,Object o)
{
if(e.target==b)
{
int a=Integer.parseInt(t1.getText());
int fac=1;
for(int i=1;i<=a;i++)
fac=fac*i;
t2.setText(fac+"");
}
return true;
}
} //fin clase factorial
Función que se ejecuta cuando se presiona
un botón (es igual que en los Frames)
Para visualizar este programa en una página web se debe crear una página html (página web) desde el cual se llame
al applet. Como a continuación se muestra.
<html>
<applet code="factorial.class" width=200>
</applet>
</html>
2. Programa que suma dos números introducidos por teclado
import java.applet.Applet;
import java.awt.*;
public class suma extends Applet
{
TextField t1=new TextField();
TextField t2=new TextField();
TextField t3=new TextField();
Button b=new Button("sumar");
public void init()
{
add(t1);
add(t2);
add(b);
add(t3);
}
public boolean action(Event e,Object o)
{
if(e.target==b)
{
int a=Integer.parseInt(t1.getText());
int b=Integer.parseInt(t2.getText());
int c=a+b;
t3.setText(c+"");
}
return true;
}
} //fin de la clase suma
Posicionando los objetos del Applet
setLayout(null)
import java.applet.Applet;
import java.awt.*;
public class suma extends Applet
{
TextField t1=new TextField();
TextField t2=new TextField();
TextField t3=new TextField();
Button b=new Button("sumar");
public void init()
{
setLayout(null);
add(t1);
t1.setSize(40,20);
t1.setLocation(30,30);
Para poder posicionar los elementos dentro de un
applet se debe anular el setLayout(null)
add(t2);
t2.setSize(40,20);
t2.setLocation(30,70);
add(b);
b.setSize(40,20);
b.setLocation(80,50);
add(t3);
t3.setSize(40,20);
t3.setLocation(140,50);
}
public boolean action(Event e,Object o)
{
if(e.target==b)
{
int a=Integer.parseInt(t1.getText());
int b=Integer.parseInt(t2.getText());
int c=a+b;
t3.setText(c+"");
}
return true;
}
} //fin de la clase suma
La clase Graphics
Para utilizar la clase Graphics se debe crear la función paint(), la función paint se puede utilizar en Frames y en
Applets.
Por ejemplo:
3. Applet que visualiza un circulo y un rectángulo
import java.applet.Applet;
import java.awt.*;
public class Ejemplo extends Applet
{
public void init()
{
this.setSize(300,300);
}
public void paint(Graphics g)
{
g.drawString("CIRCULO",50,40);
g.drawOval(50,50,50,50);
g.drawString("RECTANGULO",150,40);
g.drawRect(150,50,50,50);
drawString.- dibuja un texto
drawOval.- dibuja un ovalo
drawRect.- dibuja un rectangulo
}
}
Applet que carga una imagen
Previamente tendremos que copiar la(s) imágenes en nuestro proyecto, las imágenes pueden ser bmp, jpg o gif
import java.applet.Applet; //para usar Applets
import java.awt.*; //para usar graphics
import javax.swing.ImageIcon; //para usar ImageIcon
public class Principal extends Applet {
Image ima=new ImageIcon(getClass().getResource("arbol02.gif")).getImage();
public void init()
{
Alto de la
this.setSize(400,400);
nombre del archivo
}
imagen
de imagen
public void paint(Graphics g)
{
g.drawImage(ima,40,40,160,160,null);
}
}
Posición x
Eventos (PRESIONAR
Posición y
Ancho de la
imagen
TECLAS)
Evento presionar una tecla (se usa la función boolean keyDown(Event e, int key))
import java.applet.Applet;
import java.awt.*;
public class Ejemplo extends Applet
{
int x=30,y=30;
public void init()
{
this.setSize(300,300);
}
public void paint(Graphics g)
{
g.fillOval(x,y,20,20);
}
Almacena el valor numérico de la
tecla presionada
public boolean keyDown(Event e,int key)
{
if(key==1004)
y=y-10;
if(key==1005)
y=y+10;
if(key==1006)
x=x-10;
if(key==1007)
x=x+10;
repaint();
return true;
}
Llama a la
función paint
}
Applet que visualiza el número correspondiente asociado a cada tecla
import java.applet.Applet;
import java.awt.*;
public class Ejemplo extends Applet
{
String cad="numero de tecla";
public void paint(Graphics g)
{
g.drawString(cad, 30, 30);
}
public boolean keyDown(Event e,int key)
{
cad=String.valueOf(key);
repaint();
return true;
}
Convierte un
}
número a cadena