applets en java

Upload: carmelo

Post on 29-May-2018

247 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/9/2019 Applets en Java

    1/32

    Applets en Java

  • 8/9/2019 Applets en Java

    2/32

    Definicin

    Pequea aplicacin accesible en un

    servidor Internet

    Se transporta por red Se instala automticamente

    Se ejecuta in situ como parte de un

    documento web

  • 8/9/2019 Applets en Java

    3/32

    Es una aplicacin corta

    Basada en un formato grfico

    Sin representacin independiente Es necesario embeber ese elemento en otras

    aplicaciones

    Navegadores Web

    JavaSoft

  • 8/9/2019 Applets en Java

    4/32

    Applet en HTML

    Applet destinado a ejecutarse en navegadores Web

    Preparar XHTML para soportar Java Applets

    etiqueta

    Atributos obligatorios Code:nombre de la clase principal(fichero compilado)

    Windth, height,

    Atributos opcionales

    Codebase:url base del applet

    Alt: texto alternativo

    Name:nombre instancia Aligh:alineacin

    Vspace:espaciado vertical

    Hspace:espaciado horizontal

  • 8/9/2019 Applets en Java

    5/32

    Paso de parmetros a Applets

    Etiqueta param en html entre etiquetas

    applet

    Indica paramtros Mtodo getParameter()

    De la clase java.applet.Applet

    Para leerlos en el cdigo interno del Applet

    Name:nombre del parmetro a pasar al Applet Value:valor a trasmitir al parmetro

  • 8/9/2019 Applets en Java

    6/32

    Ejemplo

    Escribir un archivo en java, que al navegar

    aparezca el texto Hola

  • 8/9/2019 Applets en Java

    7/32

    Solucin

    import java.awt.Graphics;

    import java.applet.Applet;

    public class EjemploApplet1 extends Applet{

    String nombre;

    public void init(){

    nombre=getParameter("Nombre");

    }

    public void paint (Graphics g){

    g.drawString("Hola " + nombre + "!", 30,30); }

    }

  • 8/9/2019 Applets en Java

    8/32

    En HTML

  • 8/9/2019 Applets en Java

    9/32

    Escribir Applets en Java

    Necesarios unos mtodos Arrancar start

    Detener la ejecucin del applet stop

    Pintar paint

    Actualizar update

    NO necesario mtodo main como lasaplicaciones Java

    Se deben implementar, redefnir, al menos uno

    de los tres mtodos Init()

    Start()

    Paint()

  • 8/9/2019 Applets en Java

    10/32

    Init()

    Esta funcin es llamada slo una vez al crearseel applet.

    La clase Applet no hace nada en init

    Las clases derivadas deben sobrecargar estemtodo para cambiar el tamao durante suinicializacin

    Se deben realizar Cargar imgenes y sonido en memoria

    Redimensin del applet para obtener el tamaocorrecto

    Asignar valores a las variables globales

  • 8/9/2019 Applets en Java

    11/32

    Destroy()

    Se llama cuando el applet no se va a usar

    ms

    Los applet multitarea usan destroy paramatar cualquier tarea que quedase activa,

    antes de concluir definitivamente la

    ejecucin del applet

  • 8/9/2019 Applets en Java

    12/32

    start()

    Llamada para activar el applet

    Se llama cuando se visita el applet

    Las clases derivadas lo sobrecargan paracomenzar la animacin ,sonido..

  • 8/9/2019 Applets en Java

    13/32

    Stop()

    Llamada para detener el applet

    Se llama cuando el applet desaparece de

    la pantalla Las clases derivadas lo sobrecargan para

    detener la animacin, el sonido.

  • 8/9/2019 Applets en Java

    14/32

    Resize(int width, int height)

    El mtodo init() debera llamar a esta

    funcin miembro para establecer el

    tamao del applet

    Cambiar el tamao en un sitio que no sea

    init, provoca un reformateo de todo el

    documento no recomendable.

  • 8/9/2019 Applets en Java

    15/32

    Paint(Graphics g)

    Se llama cada vez que se necesita

    refrescar el rea de dibujo del applet

    Mtodo de la clase Component heredadopor varias clases y tb por la clase Applet

    Dibuja una caja en el rea

    Para repintar toda la zona del appletcuando llega un evento Paint, se pide usar

    update

  • 8/9/2019 Applets en Java

    16/32

    Update(Graphics g)

    Se llama cuando se necesita actualizar la

    pantalla

    La clase Applet solo limpia el rea y llamaal mtodo paint

    Se puede usar update para modificar

    partes del rea grfica sin tener que pintar

    el rea completa

  • 8/9/2019 Applets en Java

    17/32

    Repaint()

    Se llama cuando el applet necesite ser

    repintado

    Al llamar repaint sin parmetros,internamente se llama a update que borra

    el rectngulo sobre el que se redibujar y

    luego se llama a pint

  • 8/9/2019 Applets en Java

    18/32

    getParameter(String attr)

    Carga valores pasados al applet va la

    marca Applet de HTML

    Argumento String es el nombre delparmetro que se quiere obtener

    Debemos definir una cadena generca

    para usar el mtodo

  • 8/9/2019 Applets en Java

    19/32

    getDocumentBase()

    Indica la ruta http de donde se ha recogido

    la pagina html que contiene el applet

  • 8/9/2019 Applets en Java

    20/32

    Print (Graphics g)

    Para imprimir en impresora, al igual que

    paint, se puede usar print

  • 8/9/2019 Applets en Java

    21/32

    Crear Applet con paquete

    Abre File new Project

    Ruta del paquete

    Compilador run Applet Se crea automtico

  • 8/9/2019 Applets en Java

    22/32

    Barra de scroll

    Crea un applet que dibuje una barra de

    scroll horizonta en la pantalla

    Adems que en una etiqueta nos muestrela posicion de la barra

  • 8/9/2019 Applets en Java

    23/32

    Solucin 1

    impor t j ava.awt.event .* ;

    import java.awt.*;

    import java.applet.*;

    public class Barras_scroll extends Applet

    {

    private Scrollbar miBarra=null;

    private Label miLabel=null;

    public void init()

    {

    //Contructor //Scrollbar.VERTICAL

    // Valor inicial (Arranca)

    // Grosor de la barra

    // Limite inferior (Valor minimo)

    // Limite superior (Valor maximo) (Limite superior - Grosor de la barra)

    // ej (255-10=245)

    // Arranca -->25

    // Grosor de barra-->30

    // Limite inferior-->9

    // Limite superior-->(100-30=70)

    miBarra = new Scrollbar( Scrollbar.HORIZONTAL,25,30,9,100 );

    //Recuperamos el valor

    miLabel = new Label(String.valueOf(miBarra.getValue()));;

    setLayout(null);

    add(miBarra);

    add(miLabel);

    miBarra.setBounds(150,100,180,20);

    miLabel.setBounds(230,150,125,20);

    eventos();

  • 8/9/2019 Applets en Java

    24/32

    Solucion 2

  • 8/9/2019 Applets en Java

    25/32

    Ejercicio

    Crea un applet que escriba en la pgina

    los diferentes mtodos que nos

    encontramos en la vida del applet

  • 8/9/2019 Applets en Java

    26/32

    Solucion

    import java.applet .Applet ;

    impor t java.awt.Graphics ;

    public class ClsApplet extends Applet

    {

    String msg="";

    public void init()

    {

    msg="inicializando... ";

    }

    public void start() {

    msg+="arrancando... ";

    //repaint();-- no es necesario ya que la primera vez se ejecuta

    // el paint automaticamente

    }

    public void stop()

    {

    msg+="parando... "; // no se visualiza el mensaje en el applet

    // se produce cuando abandonamos la pagina web

    }

    public void destroy()

    { msg+="preparando para descargar..."; // no se visualiza el mensaje en el applet

    // no se suele remplazar

    }

    public void paint(Gr aphics g)

    {

    g.drawString(msg, 5, 15);

    }

    }

  • 8/9/2019 Applets en Java

    27/32

    Ejercicio

    Dibuja un interfaz de usuario que nos

    ponga un botn en cada zona geogrfica

    del applet usando borderLayout

  • 8/9/2019 Applets en Java

    28/32

    Solucion

    import java.applet.*;

    import java.awt.*;

    public class ClsBorderLayout extends Applet

    {

    public void init()

    { setLayout(new BorderLayout());

    setFont(new Font("Helvetica", Font.PLAIN, 14));

    add("North", new Button("Norte"));

    add("South", new Button("Sur"));

    add("East", new Button("Este"));

    add("West", new Button("Oeste")); add("Center", new Button("Centro"));

    }

    }

  • 8/9/2019 Applets en Java

    29/32

    Ejemplo

    Dibuja unos botones que al pulsar escriba

    un texto en una label

    Todo esto en un applet

  • 8/9/2019 Applets en Java

    30/32

    Solucion

    import java.applet.*;

    import java.awt.*;

    import java.awt.event.*; //Solo para el ActionListener

    public class ClsBoton extends Applet

    {

    Button btn1;

    Button btn2;

    Button btn3;

    Label lbl;

    public void init()

    {

    btn1=new Button("10");

    btn2=new Button("16"); btn2=new Button("18");

    lbl=new Label("Prueba de eventos");

    add(btn1);

    add(btn2);

    add(btn3);

    add(lbl);

    setLayout(null);

    //left, top, width, height

    btn1.reshape(70,20,70,20);

    btn2.reshape(140,20,70,20);

    btn2.reshape(140,20,70,20);

    lbl.reshape(90,100,125,20);

    lbl.setAlignment(Label.CENTER);//Texto centrado

    //literal, atributos,tamao

    Font fuente=new Font("Impact",Font.ITALIC,15);

    lbl.setFont(fuente);

    lbl.setForeground(Color negrita); //Color de fuente

    }

    public void start()

    {

    eventos();//solo para la version con ActionListener

    }

    public void paint(Graphics p1)

    {

    }

    /*

  • 8/9/2019 Applets en Java

    31/32

    Ejemplo

    Dibuja en un applet unos botones y una

    lista dentro de un panel

    Cuidado que no hace falta Frame

  • 8/9/2019 Applets en Java

    32/32

    Solucion

    import java.applet.*;

    import java.awt.*;

    public class ClsCardLayout extends Applet

    {

    public void init()

    {

    //Donde se declaren las variables de ejemplar:

    Panel cards;

    String BUTTONPANEL = "Panel con un texto";

    String TEXTPANEL = "Panel con otro texto diferente";

    setLayout(new BorderLayout());

    setFont(new Font("Helvet ica", Font.PLAIN, 14));

    //Ponemos la lista in un panel para facil itar su posicionamiento

    Panel cp = new Panel();

    Choice c = new Choice();

    c.addItem(BUTTONPANEL);

    c.addItem(TEXTPANEL);

    cp.add(c);

    add("North", cp);

    cards = new Panel();

    cards.setLayout(new CardLayout());

    Panel p1 = new Panel();

    p1.add(new Button("Button 1")); p1.add(new Button("Button 2"));

    p1.add(new Button("Button 3"));

    Panel p2 = new Panel();

    p2.add(new TextField("TextField", 20));

    cards.add(BUTTONPANEL, p1);

    cards.add(TEXTPANEL, p2);

    add("Center", cards);

    }

    }