1 / 29

Applets

Applets. Programacion. Applets. ARQUITECTURA DE APPLETVIEWER. Ciclo de vida de un Applet. Se crea una instancia de la clase que controla el applet. En el ejemplo de la figura anterior, sería la clase HolaMundo . El applet se incializa. El applet comienza a ejecutarse.

grover
Download Presentation

Applets

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Applets Programacion

  2. Applets ARQUITECTURA DE APPLETVIEWER

  3. Ciclo de vida de un Applet • Se crea una instancia de la clase que controla el applet. En el ejemplo de la figura anterior, sería la clase HolaMundo. • El applet se incializa. • El applet comienza a ejecutarse. • El applet empieza a recibir llamadas. Primero recibe una llamada init (inicializar), seguida de un mensaje start (empezar) y paint (pintar). Estas llamadas pueden ser recibidas asíncronamente.

  4. METODOS DE APPLETVIEWER init() El método init() se llama cada vez que el appletviewer carga por primera vez la clase. start()start() es la llamada para arrancar el applet cada vez que es visitado. stop()stop() es la llamada para detener la ejecución del applet. destroy() El método destroy() se llama cuando ya no se va a utilizar más el applet paint( Graphics g ) Es la función llamada cada vez que el área de dibujo del applet necesita ser refrescada. update( Graphics g ) Esta es la función que realmente se llama cuando se necesita una actualización de la pantalla. repaint Llamando a este método se podrá forzar la actualización de un applet

  5. UN APPLET BASICO EN JAVA // Applet HolaMundo de ejemplo import java.awt.Graphics; import java.applet.Applet; public class HolaMundo extends Applet { public void paint( Graphics g ) { g.drawString( "Hola Mundo!",25,25 ) ; } } // // Applet HolaMundo de ejemplo // <HTML><APPLET><CODE = HolaMundo.class WIDTH = 100 HEIGHT = 80> </APPLET> </HTML>

  6. Ejemplos de Applets /* Propósito: Generar seis números aleatorios entre 1 y 51 para una quiniela del melate.* El applet tiene un campo de texto para mostrar los valores y un botón* para ejecutar la acción. Cuando se presiona el botón se generan 6 números aleatorios para* la quiniela.* Nombre: Héctor E. Medellin* Fecha : 7 de febrero de 2006* Curso de Programación*/import java.applet.*;//necesario para los Appletsimport java.awt.*;//necesario para manejo de componentes gráficospublicclass Melate extends Applet{

  7. Miembros dato del Applet TextField salida; //lineas de texto para salidaButton boton; //boton para generar quinielaint n1,n2,n3,n4,n5,n6;//números aleatoriospublicvoid init(){//crea objetos gráficossalida = new TextField(5); boton = new Button("generar quiniela");//para colocarlos libremente hay que hacer el esquema nulosetLayout(null);//establecer dimensiones de las comp. (x,y,ancho,alto)salida.setBounds(50,50,150,25); boton.setBounds(50,110,120,30);//agregar las componentes gráficasadd(salida); add(boton);}

  8. Métodos publicvoid melate(){ n1 = (int)(Math.random()*51+1); n2 = (int)(Math.random()*51+1); n3 = (int)(Math.random()*51+1); n4 = (int)(Math.random()*51+1); n5 = (int)(Math.random()*51+1); n6 = (int)(Math.random()*51+1);}publicboolean action(Event e, Object o){if(e.target == boton){//si se preciono el botonmelate(); salida.setText(""+n1+", "+n2+", "+n3+", "+n4+", "+n5+", "+n6); }returntrue;} }

  9. Vectores en Pascal Lectura de un vector en Pascal Pascal Program Vector;var num,i : integer; vec : array[1..10]of integer;Begin readln(num); for i:=1 to num do readln(vec[i]); for i:=1 to num do writeln(vec[i]);End.

  10. Vectores en C Lectura de un vector en C C #include <stdio.h> void main(){ int num,i; int vec[10]; scanf(“%d”,&num); for(i = 0; i<10; i++) scanf(“%d”,&vec[i]); for(i = 0; i<10; i++) printf(“%d”,vec[i])}

  11. Una aplicación en Java Para la lectura de datos desde la consola es conveniente utilizar un paquete. El paquete que utilizamos es javabook que contiene clases para leer números enteros, reales y cadenas. Java import javabook.*;public class Vector{ public static void main(String[] args) { SimpleInput entrada = new SimpleInput(); int vec[],i; vec = new int[10];// o int vec[] = new int[10]; for(i = 0; i<10; i++) vec[i] = entrada.getInteger(“Tecle un valor entero:”); for(i = 0; i<10; i++) System.out.println(“”+vec[i]); }}

  12. Ejemplo de applet con vectores /* Propósito: Generar una quiniela aleatoria de progol.* El applet tiene un boton para ejecutar la acción. * Cuando se presiona el boton se generan la quiniela de progol* Nombre: Héctor E. Medellin* Fecha : 7 de febrero de 2006* Curso de Programación*/import java.applet.*;//necesario para los Appletsimport java.awt.*; //necesario para manejho de componentes gráficospublicclass Progol extends Applet{

  13. Creación de objetos Button boton; //boton para generar quinielaint juego[]; //resultados de la quiniela aleatoriospublicvoid init(){//crea objetos gráficosboton = new Button("generar quiniela");//crear quinielajuego = newint[14];//para colocarlos libremente hay que hacer el esquema nulosetLayout(null);//establecer dimensiones de las componentes (x,y,ancho, /// alto)boton.setBounds(50,350,120,30);//agregar las componentes gráficasadd(boton);}

  14. Métodos publicvoid quiniela(){int i;for(i = 0; i<14; i++) juego[i] = (int)(Math.random()*3); } publicboolean action(Event e, Object o){if(e.target == boton){//si se preciono el botonquiniela(); repaint(); }returntrue;}

  15. Método paint publicvoid paint(Graphics g){int i; g.drawString("Local Empate Visitante",100,30);for(i = 0; i<14; i++){ g.drawString(""+(i+1),80,35+(i+1)*15);if(juego[i]==0) g.fillRect(100,40+i*15,20,10); else g.drawRect(100,40+i*15,20,10); if(juego[i]==1) g.fillRect(150,40+i*15,20,10); else g.drawRect(150,40+i*15,20,10); if(juego[i]==2) g.fillRect(200,40+i*15,20,10); else g.drawRect(200,40+i*15,20,10); } }}

  16. Applet del mcd /* Propósito: calcular el máximo común divisor de dos números utilizando una función.* El applet tiene tres campos de texto para los valores y el resultado y un boton* para ejecutar la acción. Cuando se presiona el boton se calcula el valor del mcd de los* números tecleados en los dos campos de texto de entrada.* Nombre: Héctor E. Medellin* Fecha : 7 de febrero de 2006* Curso de Programación*/import java.applet.*;//necesario para los Appletsimport java.awt.*; //necesario para manejo de componentes gráficospublicclass PruebaMCDApplet extends Applet{ TextField entrada1,entrada2,salida; //lineas de texto para entrada y salidaButton boton; //boton para llamar a la funcionLabel mcdEtiqueta;int num1,num2,valor; //números tecleados y mdc

  17. Método init() publicvoid init(){//crea objetos gráficosentrada1 = new TextField(5); entrada2 = new TextField(5); salida = new TextField(5); boton = new Button("calcular mcd"); mcdEtiqueta = new Label("M.C.D.");//para colocarlos libremente hay que hacer el esquema nulosetLayout(null);//establecer dimensiones de las componentes (x, y, ancho, alto) entrada1.setBounds(50,50,80,25); entrada2.setBounds(50,80,80,25); salida.setBounds(150,50,80,25); boton.setBounds(50,110,100,25); mcdEtiqueta.setBounds(150,30,80,25);//agregar las componentes gráficasadd(entrada1); add(entrada2); add(salida); add(boton); add(mcdEtiqueta); }

  18. Método mcd() staticpublicint mcd(int m, int n){int a,b,res;// dtermina cual de los dos números es el mayorif(m>n){ a = m; b = n; }else{ a = n; b = m; }//algoritmo de Euclides para mcdwhile(b != 0){ res = a%b; a = b; b = res; }return a;}

  19. Método action() publicboolean action(Event e, Object o){if(e.target == boton)//si se preciono el botonif(sonOperandosValidos()){//si los números son válidosvalor = mcd(num1,num2); salida.setText(""+valor); }returntrue;}

  20. Métodos sonOperandosValidos() privateboolean sonOperandosValidos(){boolean b;try{//si alguno de los números no esta correctamente escrito, //se salta a ejecutar la parte de catchnum1 = Integer.parseInt(entrada1.getText()); num2 = Integer.parseInt(entrada2.getText()); b = true; }catch(NumberFormatException e){ b = false; }return b;}

  21. Applet en ejecución

  22. Resumen de Applets Un applet es una aplicación pequeña. Requiere de una clase derivada de la clase Applet (hija de Applet). Para visualizar un applet con AppletViwerr se requiere un archivo HTM. En el método init() se construyen los objetos del applet. Puede usarse también un constructor. El método paint() se ejecuta cada que se redibuja el applet. El método action() procesa las herramientas visuales que responden a acciones (botones, barras de scroll, campos de texto). Para posicionar componentes libremente (posicionamiento absoluto) se requiere de poner el esquema como null, es decir, incluir en init() setLayout(null). El posicionamiento se realiza con <objeto>.setBounds(x,y,w,h). Se pueden declarar todos los métodos que se requiera dentro de un applet para llevar a cabo su labor.

  23. Constructores y métodos de algunas herramientas Button Button() – botón sin rótuloButton(String s) – botón con rótulo TextField TextField() – sin parámetrosTextField(int columnas) – número de columnasTextField(String s) – texto exhibidoTextField(String s, int columnas) – texto exhibido y número de columnassetEditable(boolean b) – establece como editable o no.setText(String s) – establece el texto del campo. Choice Choice() – constructor sin parámetrosint countItems() – devuelve el número de elementos del ChoiceString getItem(int index) – devuelve el elemento del Choice en la posición index.addItem(String s) – agrega una opción a un Choice.String getSelectedItem() – devuelve el elemento de Choice selecionadoint getSelectedIndex() – devuelve el indice del elemento de Choice selecionado

  24. Esqueleto de un Applet Comentarios Sentencias import import java.applet.*;import java.awt.*; Nombre del applet public class extends Applet { Declaraciones de objetos y variables Declaraciones Declaraciones de métodos Métodos }

  25. Actividades Cada problema 0.5 puntos. En cada caso escriba un archivo HTM. 1. Escriba un applet que incluya un botón (Button) y un campo de texto (TextField), cree los objetos en el método init(). Posicione el botón en la coordenada (100,50) y el campo de texto en la (100,150). 2. Escriba un applet que dibuje la figura que se muestra. 3. Escriba un applet con un botón que simule una tirada de dados. Los dados deberán tirarse cada que se presiona en botón. Dibuje los dados como se muestra. Escriba un método para dibujar un dado que acepte un número entero, las coordenadas del dado y un objeto Graphics.

  26. Eventos del mouse public boolean mouseDown(Event e, int x, int y) – ocurre cuando se presiona el botón public boolean mouseUp(Event e, int x, int y) – ocurre cuando se suelta el botón public boolean mouseMove(Event e, int x, int y) – ocurre cuando se mueve el botón public boolean mouseExit(Event e, int x, int y) – ocurre cuando el cursor de mouse sale del área de la componente. public boolean mouseEnter(Event e, int x, int y) – ocurre cuando el cursor del mouse entra al área de la componente public boolean mouseDrag(Event e, int x, int y) – ocurre cuando se presiona el botón y se mueve el ratón.

  27. Ejemplo de eventos de mouse import java.applet.*;//necesario para los Appletsimport java.awt.*;//necesario para manejo de componentes gráficospublicclass MoverMouse extends Applet{publicboolean mouseMove(Event e, int x, int y){ showStatus("Mouse en ("+x+","+y+")");returntrue; }publicboolean mouseDown(Event e, int x, int y){ showStatus("Se presionó el Mouse en ("+x+","+y+")");returntrue; }}

  28. Arrastre del mouse Es necesario supeditar update() para que no se borre el segundo plano. import java.applet.*;//necesario para los Appletsimport java.awt.*; //necesario para manejo de componentes gráficospublicclass MoverDrag extends Applet{int xValor, yValor;boolean primeraVez;publicvoid init(){ primeraVez = true; }publicvoid paint(Graphics g){if(!primeraVez)//no dibuja la primera vez g.fillOval(xValor,yValor,4,4); }//update normalmente borra el segundo planopublicvoid update(Graphics g){ paint(g);//no borra el segundo plano }publicboolean mouseDrag(Event e, int x, int y){ xValor = x; yValor = y; primeraVez = false; repaint();//llama a repaint showStatus("Evento mouseDrag");returntrue; }}

  29. Eventos del ratón con HandleEvent() import java.applet.*;import java.awt.*;publicclass EventRaton extends Applet{ List evento;publicvoid init(){ evento = new List(6,false); add(evento); }publicboolean handleEvent(Event e){switch(e.id){case Event.MOUSE_UP:evento.addItem("Ratón arriba");returntrue;case Event.MOUSE_DOWN:evento.addItem("Ratón abajo");returntrue;case Event.MOUSE_MOVE:evento.addItem("Ratón en movimiento");returntrue;case Event.MOUSE_ENTER:evento.addItem("Ratón entra");returntrue;case Event.MOUSE_EXIT:evento.addItem("Ratón sale");returntrue;case Event.MOUSE_DRAG:evento.addItem("Ratón se arrastra");returntrue; } showStatus("No es evento de mouse");returntrue; }}

More Related