1 / 19

JAVA APPLETS

JAVA APPLETS. Silvia Larrayoz Leire Urriza. INTRODUCCIÓN. 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.

sandra_john
Download Presentation

JAVA 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. JAVA APPLETS Silvia Larrayoz Leire Urriza E.T.S de Ingenieros de Telecomunicación - UPNA

  2. INTRODUCCIÓN • 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. E.T.S de Ingenieros de Telecomunicación - UPNA

  3. APLICACIÓN  APPLET • 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 E.T.S de Ingenieros de Telecomunicación - UPNA

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

  5. CICLO DE VIDA DE UN APPLET (I) • 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...) 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 E.T.S de Ingenieros de Telecomunicación - UPNA

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

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

  9. DESARROLLO DEL APPLET • 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 <applet ...> a alguna página Web. E.T.S de Ingenieros de Telecomunicación - UPNA

  10. LA ETIQUETA <applet> (I) <applet [name=?] [codebase=?] code=? [archive=?] width=? height=? [align=?] [vspace=?] [hspace=?] [alt=?]> [<param name=? value=?>] 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) E.T.S de Ingenieros de Telecomunicación - UPNA

  11. LA ETIQUETA <applet> (II) • 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 • <param> 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(); E.T.S de Ingenieros de Telecomunicación - UPNA

  12. EJEMPLO (Calculadora) (I) • 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 E.T.S de Ingenieros de Telecomunicación - UPNA

  13. EJEMPLO (Calculadora) (II) • 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 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); } E.T.S de Ingenieros de Telecomunicación - UPNA

  15. EJEMPLO (Calculadora) (IV) //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);}} E.T.S de Ingenieros de Telecomunicación - UPNA

  16. EJEMPLO (Calculadora) (V) //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 E.T.S de Ingenieros de Telecomunicación - UPNA

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

  18. EJEMPLO (Calculadora) (VI) Para probarlo en un navegador… <HTML> <HEAD> <TITLE> Práctica 18a </TITLE> </HEAD> <BODY> <CENTER> <H1> Práctica 18a: Calculadora </H1> <BR/> <APPLET code=”org.javahispano.practica18a.Calculadora” width=”170” height=”150”> </APPLET> </CENTER> </BODY> </HTML> paquete clase E.T.S de Ingenieros de Telecomunicación - UPNA

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

More Related