Java Applets como ejemplo de Frameworks. Agustín J. González ELO-329

Documentos relacionados
Programación conducida por eventos y Applets como ejemplo de Frameworks. Agustín J. González ELO-326. Seminario II 2do. Sem. 2001

Applets. Un applet es: desde el punto de vista de código Java, un programa diseñado para ser ejecutado en el contexto de una página web.

1. Cómo hacer un applet? Implementación de un Applet (awt) Ejecución de los Applets Hacer el archivo HTML con los siguientes

Applets. Programación de Applets. Cómo hacer un applet Java. Cómo se ejecuta un applet Java. Programación Orientada a Objetos Facultad de Informática

Programación Conducida por eventos Event-driven programming. Agustín J. González ELO329/ELO330

PROGRAMACIÓN EN JAVA. { una línea para definir, crear o ejecutar ; }

Programación basada en eventos Event- Based Programming : Conceptos. ELO329: Diseño y Programación Orientados a Objetos

JAVA 7 Los fundamentos del lenguaje Java

Tema 7. Construcción de Applets en Java

Objetivos y Temario CURSO JAVA 7

Applets y Aplicaciones

Sincronización de Threads

Tutorial Java con acceso a datos

Programación basada en/dirigida por eventos Event-Based Programming : Conceptos (o Event-driven Programming)

Tutorial Java con acceso a datos e Interfaces gráficas

Construir una Interfaz Gráfica

Manual de requisitos técnicos para la Sede Electrónica del Ayuntamiento de Suances

Introducción a Java. Dr. (c) Noé Alejandro Castro Sánchez

PROCESO DE ACTUALIZACION SISTEMA HGINET

La funcionalidad básica de un navegador web es permitir la visualización de documentos de texto, posiblemente con recursos multimedia incrustados.

Lenguaje Orientado por Objetos Simple, Poderoso y Fácil de aprender Robusto Interactivo Arquitectura neutral Interpretado y de alto desempeño

I. Introducción a la programación orientada a objetos y al lenguaje JAVA Colegio Reuven Feuerstein --Javier Navarro

Servidor de Sumo - Manual del usuario

Herencia. Implementación en Java

Programación de Interfaces Gráficas en Java. Agustín J. González ELO329

CONFIGURACIONES FIRMA DIGITAL SCOMP

Manual de Usuario Validador Externo (Versión 1.2) ASOCAJAS Preparado por Hpe Ajustado por Asocajas

Programación de Interfaces Gráficas en Java

Pasos requeridos para establecer el manejo de eventos para un componente de GUI.

USO DE LOS OBJETOS JLABEL, JTEXTFIELD Y JBUTTON

MINISTERIO DE SALUD Y PROTECCIÓN SOCIAL BOGOTÁ, AGOSTO DE 2015

Arquitecturas cliente/servidor

CAPÍTULO 1. MI PRIMERA APLICACIÓN...

d) Mencione dos diferencias y dos semejanzas entre clases abstractas e interfaces.

Sistemas Operativos. que es un sistema operativo?

Servicios del Sistema Operativo (SO)

Ayuda para firmar electrónicamente con el MiniApplet (Gobierno de España) en la Sede Electrónica de la CNMV

Tema: Introducción al IDE de Microsoft Visual C#.

Manual de Usuario Guía de uso para las aplicaciones en Java Web Start

Tópicos Avanzados de Programación (TAP3501)

Capítulo 3. Introducción a la programación. Continuar

SecureSignIR Guía Rápida para la Instalación

Introducción a los Sistemas Operativos

NIVEL 16: ESTRUCTURAS RECURSIVAS N-ARIAS

PROGRAMACIÓN ORIENTADA POR OBJETOS EN JAVA

Desarrollo de aplicaciones gráficas

NOCIONES GENERALES Y ENTORNO

Aranda AAM WEB NOMBRE DEL PRODUCTO Aranda:

DIGITAL MEDIA SERVER MANUAL DE USUARIO

PRESENTACIÓN DE LA ASIGNATURA E INTRODUCCIÓN A LA PROGRAMACIÓN VISUAL

Programación Dirigida a Objetos. MATERIAL COMPLEMENTARIO Tema 5.- Herencia

3.2 USO DEL NUEVO CLIENTE DE FIRMA Proceso normal de firma Cancelación de firma por expiración de tiempo...

1. Instalación de ADOBE Flash CS5

INSTALACION CONFIGURACION JAVA Y ACCESO DIRECTO MEGE XXI

Guía para configurar el acceso al Sistema de Consulta Remota del Sistema Integral Registral SIRe 2017

INSTALACIÓN DE GREENSTONE EN SISTEMAS LINUX

MANUAL DE USUARIO. Proxynet

PROCESO PARA CAMBIO DE SERVIDOR

PRIMEROS PASOS EN SIGETT

Manual de Usuario/a sobre el uso de firma electrónica avanzada

INGRESAR DATOS CON UN CONTROL VISUAL EN JAVA. CLASE JTEXTFIELD Y MÉTODO GETTEXT. EJEMPLOS (CU00928C)

SISTEMAS OPERATIVOS Capítulo 2 Concepto. Funciones.

Manual de usuario de configuración de Navegadores para Sede Electrónica del SEPE

ESCRITORIO REMOTO MULTIPLATAFORMA V 1.0. Por, Douglas Vasquez, Eleazar García, Michael Méndez.

PLANTEL 2 CIEN METROS ELISA ACUÑA ROSSETTI ACADEMIA DE TECNOLOGIA DE LA INFORMACION Y DE LA COMUNICACION

Curso: Java SE (Standard Edition)

Previo al uso del sistema SAT, se deben verificar las máquinas de los usuarios, y realizar los siguientes pasos:

Transcripción:

Java Applets como ejemplo de Frameworks Agustín J. González ELO-329 1

Frameworks Un framework ( marco de trabajo ) es un conjunto de clases que implementan todos los servicios comunes de un cierto tipo de aplicación. Para construir una aplicación, el programador deriva de alguna de las clases del framework y agrega las operaciones específicas de la aplicación. Por ejemplo: considere la clase Windows para describir una ventana gráfica de una interfaz usuario. Se espera que otras clases sean derivadas de ésta para proveer implementaciones de operaciones como dibujar su contenido. Cada ventana debe saber como re-dibujarse cuando es restaurada desde el icono, o expuesta luego de ser cubierta por otra ventana. 2

Frameworks: Ideas relacionadas Empresa constructora: Supongamos que usted tiene una empresa constructora. Por razones de economía y eficiencia, dispone de 5 tipos de casas para sus clientes. Como es razonable que el usuario participe definiendo sus requerimientos, la empresa le da la posibilidad que él elija algunos aspectos como: tipo de ventanas, piso, techo, y terminaciones en general. Además puede dejar cosas a su entera definición, es decir para que el cliente las haga por su parte. Programador Ofrecido por el framework Framework 3

Frameworks (cont) La idea no es que el usuario deba conocer todos los detalles sobre el manejo la interfaz usuario, sino sólo las operaciones claves que le son de interés. Ejemplo: cuando un área que acepta scrolling es movida, la operación que maneja esta labor se encarga de solicitar el pintado de la porción de la imagen ahora expuesta. La clase base no tiene idea sobre qué se está pintando, pero sabe cuando el pintado es necesario. La clase base impone el orden de ejecución de los métodos provistos por la clase derivada. La programación sobre un framework maneja eventos aislados como pintado, comandos de menu, clicks del mouse, etc. Cuando un método termina, el control es retornado al framework. Nuevamente reconocemos el comportamiento conocido como programación conducida por eventos (event-driven programming) 4

Applet como un framework simple Un applet es un programa Java especial que está preparado para ser ejecutado como parte de una página web. El applet es cargado y ejecutado por el navegador Web. Permite agregar interactividad y dinamismo a una página Web. (Ver página de texto de Redes de Computadores) Un applet se ejecuta bajo el control de un navegador o el utilitario appletviewer. $ appletviewer <archivo.html con applet> La programación del applet se hace bajo un framework que implementa gran parte de la Graphical User Interface (GUI) Las applet poseen limitaciones por razones de seguridad; por ejemplo no se está permitido manipular archivos locales. Ver NotHelloWordApplet.java y su prueba. Ver TumbleItem.java y su prueba 5

Arquitectura para la ejecución de Applets Navegador WEB Netscape, Inter. explorer 5. Crea un hilo para MVJ Máquina virtual Java Se ejecuta método main del applet 6. Interpreta el código del applet 1. Solicita URL.html 2. Envía archivo *.html 3. Solicita archivo *.class 4. Envía archivo.class Servidor WEB Página.html Con applet.class entre marcas <applet> y </applet> En sus orígenes las applets se ejecutaban sólo en el navegador HotJava de Sun. Luego la máquina virtual se incluyó en los Netscape e Internet Explorer, pero quedaba rápidamente obsoleta. Hoy Sun creó un Plug-in para permitir actualizaciones más rápidas. Ejecuta las applets usando el jre (java Runtime environment) externo al navegador. 6

Ciclo de vida de un Applet Los pasos que tiene lugar cuando un applet es invocada son los siguientes: Cuando el navegador encuentra el rótulo <applet>, el navegador busca el código especificado en el parámetro y lo transfiere por la red hasta el browser (navegador). <applet code="nothelloworldapplet.class" width="300" height="100"> </applet> El navegador crea un hilo separado para que cada applet se ejecute concurrentemente. Una vez cargada el applet, un objeto de la clase nombre del applet es instanciado (creado) e inicializado (llamando a init()). Luego el método start() del applet es llamado y la apariencia del applet es desplegada (llamando a paint()). Luego el browser monitorea y controla los eventos asociados al applet (mouse, teclado, otros eventos, timers etc) y envía mensajes a los objetos manejadores de estos eventos que previamente deben ser registrados (event listeners) por el programador. 7

Ciclo de vida de un Applet (cont) El browser maneja la applet invocando métodos heredados de la clase Applets, los cuales pueden ser sobremontados. La clase define métodos por defecto. init(): Llamada al iniciar una nueva applet, luego que el código es cargado o recargado. Operaciones muy largas (carga de archivos desde la red) deberían hacerse en un hilo separado. start(): Este método es llamado despues de init(). Es llamado cada vez que regresamos a la página del applet. El método paint() es llamado automáticamente después de start(). stop(): Llamado para detener el applet. Normalmente significa detener cualquier thread (hilo) creado en start(). Es invocado por el navegador cuando éste cambia de página. El programador no lo llama directamente destroy(): Llamada para efectuar limpieza final. Es llamada cuando el navegador es cerrado. 8

Ciclo de vida de un Applet (cont) El applet puede transitar varias veces por los estado partida y detenida (start, stop). Hay un problema cuando cambiamos un applet porque el navegador no la vuelve a cargar al hacer un reload. Debemos cerrar el navegador o, Para forzar la recarga del applet ejecute el comando x en la consola Java del navegador, el cual limpia el cache de clases cargadas. Este comportamiento puede variar de una versión a otra. En mozilla por ejemplo, parece no ser necesario hacer la limpieza. 9

Dibujando en un Applet La applet tiene un área de trabajo en la página del browser. El largo y alto son especificados en el rótulo <APPLET> Usualmente hacen uso de componentes GUI (Graphical User Interface) tales como botones, menús, etc. En este caso cada componente se encarga de su pintado. Si queremos hacer uso de componentes gráficas de Swing, debemos heredar nuestra applet de la clase JAppet. 10

Conversión de una aplicación en Applet Crear un html con el rótulo <applet> y la invocación al código de la misma. Crear una subclase de Applet o JApplet. Hacer la clase public. Eliminar el método main de la aplicación. No construir un frame para la aplicación. La clase Applet ya lo tiene. Mover el código del constructor del frame o Jframe al método init(). Remover llamados a setsize, se definie en al html. No llamar a setvisible ni setdefaultcloseoperation. 11

Ejemplos. Calculadora Aplicación Java Calculator.java Applet creada: CalculatorApplet.java la implementación sin frame es: CalculatorPanel.java HTML asociado: CalculatorApplet.html Podemos ejecutar vía el navegador o a través de la aplicación appletviewer. > appletviewer CalculatorApplet.html 12

Seguridad en Applets Cada Applet posee un administrador de seguridad (Applet security Manager), el cual envía una SecurityException si se intenta violar alguna norma de seguridad. Applets no pueden correr programas locales. No se pueden comunicar con otra máquina, salvo aquella de donde proviene. No pueden leer o escribir al disco local. Las ventanas que el applet genera tienen un rótulo de advertencia. Para usar distintos niveles de seguridad, se puede usar un applet firmada (Signed applet) 13

Creación de ventanas desde un applet Son simples, sólo crear instancias de JFrame, pero no invocar setdefaultcloseoperation. Ejemplo: PopupCalculatorApplet.java PopupCalculatorApplet.html 14

Atributos de rótulo applet El rótulo html admite varios atributos. Posición: width, height para el tamaño align que puede ser: left,right,bottom, top, middle, entre otros. Ubicación del código: code: indica el nombre del applet, codebase: (opcional) indica el directorio relativo a la ubicación del html donde se encuentra el código, archive: (opcional) lista de archivos.jar con código y otros recursos requeridos por el applet, alt: texto alternativo a desplegar en caso que no se pueda desplegar el applet. 15

Paso de parámetros a un applet desde archivo html Se usa el rótulo html <param>. Éste posee dos atributos: name and value. Name contiene el nombre del parámetro y value su valor. Ambos son de tipo texto. Luego desde Java es posible leer el valor del parámetro invocando el método getparameter() de la clase Applet. Ej:<applet code= FontParameter.class width= 200 height= 200 > <param name= font value= Helvetica / > Luego leemos los parámetros como sigue: public class FontParameter extends JApplet { public void init() { String fontname=getparameter( font );... } } Ejemplo: Chart.java Chart.html 16

Multimedia e interacción con Navegador Applets pueden manejar imágenes y audio. La clase URL es muy útil para esta manipulación. Notar métodos de la clase Applet: getdocumentbase: retorna URL de la página donde proviene el html del applet getcodebase: retorna el URL del código del applet. getimage, getaudioclip, y play nos permiten la lectura de imágenes y sonido, el cual reproducimos con play. Todos son métodos de Applet. Ver: TicTacToe.html 17

Comunicación del applet con su entorno: Características más avanzadas Es posible comunicar varias applets de una misma página html. Es posible comunicar el applet con el navegador solicitando nuevas páginas html. El método usado el getappletcontext() de Applet. Ejemplo: Bookmark.html Bookmark.java Destacar: en ActionListener de Bookmark AppletContext context =getappletcontext(); context.showdocument(url, right ); 18