La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA.1 JAVA APPLETS Silvia Larrayoz Leire Urriza.

Presentaciones similares


Presentación del tema: "22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA.1 JAVA APPLETS Silvia Larrayoz Leire Urriza."— Transcripción de la presentación:

1 22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA.1 JAVA APPLETS Silvia Larrayoz Leire Urriza

2 22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA.2 Un applet es un programa Java con la capacidad de ser incluido en una página web y correr dentro de un navegador. Un applet es un panel que va dentro de una página Web No se ejecutan con conocimiento del usuario. Restricciones (para no violación de intimidad del visitante de la web: No pueden ejecutar programas locales Sólo pueden comunicarse con servidor de la web No pueden acceder al sistema de ficheros local No pueden sacar info de la máquina en la que corre (sólo S.O, versión de la máquina virtual de Java...) No puede acceder al disco, la impresora o la red (a no ser de que haya sido firmado digitalmente) Recientemente  applets firmados para garantizar quien hizo el programa. INTRODUCCIÓN

3 22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA.3 Generar página HTML con código adecuado para cargar el applet Eliminar el método main  browser crea el applet Extender nuestra clase a JApplet en vez de a JFrame Eliminar llamadas a setSize y setTitle (HTML se encarga) Eliminar llamadas a addWindowListener() Reemplazar constructor por el método init() Hace pública la clase del applet APLICACIÓN  APPLET

4 22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA.4 Contenedor visual del estilo de Frame (JFrame) o Panel (JPanel) según la implementación (AWT o Swing) Clase Applet  AWT Clase JApplet  Swing LAS CLASES APPLET Y JAPPLET

5 22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA.5 No tienen método public static void main(String[] args) Tienen 5 métodos: public void init() Constructor del applet (para su inicialización) Sólo se ejecuta una vez en la vida del applet public void start() Se ejecuta después de init() Cada vez que volvemos a la página del applet, cada vez que haya que arrancarlo (reload, maximizar...) Se programan tareas que es necesario volver a arrancar cada vez que volvamos a cargar el applet (animaciones...) CICLO DE VIDA DE UN APPLET (I)

6 22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA.6 CICLO DE VIDA DE UN APPLET (II) public void stop() Para parar el applet cuando el navegador sale de la página del applet. Para liberar recursos Las tareas que se detienen aquí son las que arranca el método start() public void destroy() Cuando se cierra el navegador El applet deja de estar en la caché del navegador La próxima vez que lo arranquemos será como la primera vez

7 22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA.7 public void paint(Graphics g) Para escribir o pintar en el applet Se ejecuta cada vez que se necesita refrescar el applet CICLO DE VIDA DE UN APPLET (III)

8 22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA.8 Cargar el applet  init() + start() Salir y entrar a la página HTML  stop() + start() Cerrar navegador  stop() + destroy() EJEMPLO DE CICLO DE VIDA

9 22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA.9 Definición del applet: Esta etapa es la más compleja y consiste en definir una subclase de Applet o JApplet. En esta subclase se redefinen algunos métodos de Applet como init. Escribir la o lás páginas Web (en HTML) que referencian el applet: Consiste simplemente en agregar la etiqueta a alguna página Web. DESARROLLO DEL APPLET

10 22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA.10 [ ] Descripción: name  nombre del applet codebase  URL del applet (si es distinta a la del HTML) code  nombre de la clase ppal del applet (paquete y extensión) archive  archivos JAR o ZIP que contengan clases necesarias que deban ser precargadas por el navegador width  ancho del applet (en pixels) LA ETIQUETA (I)

11 22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA.11 height  alto del applet (en pixels) align  alineamiento del applet respecto al texto vspace  espacio a dejar por encima y por debajo del applet en pixels hspace  espacio a dejar por derecha e izquierda del applet en pixels alt  texto a mostrar en caso de que el navegador no sea capaz de mostrar el applet  para pasar parámetros al applet desde el exterior 2 métodos para acceder a los parámetros: public String getParameter(String name); public String[][] getParameterInfo(); LA ETIQUETA (II)

12 22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA.12 Ejemplo 18a del Java Hispano (conversión aplicación  applet) package org.javahispano.practica17a; import java.awt.BorderLayout; import java.awt.Color; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import javax.swing.JApplet; import javax.swing.JButton; import javax.swing.JPanel; import javax.swing.JTextField; import javax.swing.SwingConstants; public class Calculadora extends JFrame implements ActionListener,KeyListener { private JTextField t=null; private int oper1=0; private int oper2=0; private String command=null; private boolean sw=true; 18 Hay que hacer que nuestra clase extienda a JApplet en vez de a JFrame EJEMPLO (Calculadora) (I)

13 22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA.13 public Calculadora() { this.setTitle(“Calculadora”); this.addWindowListener(newWindowAdapter(){ public void windowClosing(WindowEvent ev) { System.exit(0); } ); this.getContentPane().setLayout(new BorderLayout()) ; t=new JTextField(0); t.setBackground(Color.yellow); t.setHorizontalAlignment(SwingConstants.RIGHT); t.addKeyListener(this); JPanel aux=new JPanel(); aux.setLayout(new GridLayout(3,4)); JButton b=null; b= new JButton("1"); b.addActionListener(this); aux.add(b); b= new JButton("2"); b.addActionListener(this); aux.add(b); b= new JButton("3"); Sobraría porque un applet no se puede cerrar, es el navegador el encargado de inicializarlo y cerrarlo EJEMPLO (Calculadora) (II)

14 22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA.14 EJEMPLO (Calculadora) (III) b.addActionListener(this); aux.add(b); b= new JButton("+"); b.addActionListener(this); aux.add(b); b= new JButton("4"); b.addActionListener(this); aux.add(b); b= new JButton("5"); b.addActionListener(this); aux.add(b); b= new JButton("6"); b.addActionListener(this); aux.add(b); b= new JButton("-"); b.addActionListener(this); aux.add(b); b= new JButton("7"); b.addActionListener(this); aux.add(b); b= new JButton("8"); b.addActionListener(this); aux.add(b); b= new JButton("9"); b.addActionListener(this); aux.add(b); b= new JButton("="); b.addActionListener(this); aux.add(b); this.getContentPane().add(t,BorderLayout.NORTH); this.getContentPane().add(aux,BorderLayout.CENTER); }

15 22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA.15 //Se ha producido un ActionEvent public void actionPerformed(ActionEvent ev){ String aux=((JButton)ev.getSource()).getText(); if(aux.equals("+")||aux.equals("-")) { command=aux; oper1=Integer.parseInt(t.getText()); sw=true;} else if(aux.equals("=")) { oper2=Integer.parseInt(t.getText()); if(command.equals("+")) { t.setText(new Integer(oper1+oper2).toString()); oper1=oper1+oper2; // permite teclear un numero y “="(repitiendo el ultimo operador)} else { t.setText(new Integer(oper1-oper2).toString()); oper1=oper1-oper2; // permite teclear un numero y "="(repitiendo el ultimo operador) } sw=true; } else { if(sw) { t.setText(aux); sw=false; } else t.setText(t.getText()+ aux);}} EJEMPLO (Calculadora) (IV)

16 22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA.16 //Se ha producido un KeyEvent de tipo keyPressed public void keyPressed(KeyEvent ev){ } //Se ha producido un KeyEvent de tipo keyReleased public void keyReleased(KeyEvent ev){ char tmp=ev.getKeyChar(); if(!Character.isDigit(tmp)){ t.setText(t.getText().substring(0,t.getText().length()-1)); t.setCaretPosition(t.getText().length()); } //Se ha producido un KeyEvent de tipo keyTyped public void keyTyped(KeyEvent ev){ } package org.javahispano.practica17a; public class Practica17 { public static void main(String[] args){ Calculadora c=new Calculadora(); c.pack(); c.setVisible(true);}} Eliminamos el método main porque suele ser código para crear objeto de tipo frame. En nuestro caso será el navegador el encargado de crear nuestro objeto tipo applet EJEMPLO (Calculadora) (V)

17 22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA.17 Ejecutando el código (Run As Java Applet) se obtiene: EJEMPLO (Calculadora) (VI)

18 22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA.18 Para probarlo en un navegador… Práctica 18a Práctica 18a: Calculadora paqueteclase EJEMPLO (Calculadora) (VI)

19 22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA.19 www.javahispano.org www.javasun.com (API Specifications y seleccionar versión Java)www.javasun.com Piensa en Java (Segunda edición) Bruce Eckel BIBLIOGRAFÍA


Descargar ppt "22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA.1 JAVA APPLETS Silvia Larrayoz Leire Urriza."

Presentaciones similares


Anuncios Google