3URJUDPDFLyQ-DYD. 3UiFWLFD. -DYLHU*DUFtDGH-DOyQÂ -RVp,JQDFLR5RGUtJXH] $OIRQVR%UD]iOH]Â $OEHUWR/DU]DEDOÂ -HV~V&DOOHMDÂ -RQ*DUFtD

Documentos relacionados
Programación Java. Práctica 11. Javier García de Jalón José Ignacio Rodríguez Alfonso Brazález Alberto Larzabal Jesús Calleja Jon García

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

Programación Java. Práctica 12. Javier García de Jalón José Ignacio Rodríguez Alfonso Brazález Alberto Larzabal Jesús Calleja Jon García

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

3URJUDPDFLyQ-DYD. 3UiFWLFD. -DYLHU *DUFtD GH -DOyQ Â -RVp,JQDFLR 5RGUtJXH] $OIRQVR %UD]iOH] Â $OEHUWR /DU]DEDO Â -HV~V &DOOHMD Â -RQ *DUFtD

Programación Java Curso C Draw

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

Applets y Aplicaciones

CLASE 1 de VISUAL BASIC (V6)

Objetivo: Construir un programa integrando sentencias de decisión MARCO TEÓRICO

Desarrollo de aplicaciones gráficas

La última versión disponible cuando se redactó este manual era la 5 Beta (versión ), y sobre ella versa este manual.

Conceptos a tratar. Fundamentos de la Programación Orientada a Objetos Ampliación sobre clases y objetos

Una Interfaz Grafo-Matriz

INDICE Parte 1. Visual Basic Capitulo 1. Qué es Visual Basic? Capitulo 22. Mi Primera Aplicación Capitulo 3. Elementos del lenguaje

Clase adicional 2. Estructuras básicas de control. Temas

Windows XP Home. GestionGlobal21.com Página 1

Qué es Java? Introducción a Java. Lenguajes Orientados a Objetos. Qué es Java? Historia de Java. Objetivos de Java

Introducción... 1 Qué es Java?... 1 Compilando a Bytecode... 1 Usando jgrasp Para Hacer el Trabajo Sucio... 5 El Entorno de jgrasp...

HERRAMIENTAS BASICAS DE MANEJO DE WINDOWS

JAVA: Applets. Diseño de aplicaciones web.

LA ESTRUCTURA DE DATOS PILA EN JAVA. CLASE STACK DEL API JAVA. EJEMPLO Y EJERCICIOS RESUELTOS. (CU00923C)

FACULTAD DE INGENIERÍA

Normalmente, los programas son ejecutados de forma secuencial. Único flujo de control

1 HILOS (THREADS) EN JAVA

Práctica 2: Eclipse como Entorno Integrado de Desarrollo e Introducción al manejo de excepciones.

Instalación de la aplicación

Programación Orientada a Objetos. Antecedentes del Lenguaje Java

Creación de Applets Simples

LABORATORIO ARQUITECTURAS SOFTWARE DE VARIOS NIVELES EN JAVA (I)

Tema 3. Aplicaciones de Tipo Consola

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

LABORATORIO ARQUITECTURAS SOFTWARE DE VARIOS NIVELES EN JAVA (I)

ING. JONATHAN QUIROGA TINOCO. Desarrollado por Ing. Jonathan Quiroga T.

1. Cuántas sentencias hay en la secuencia principal del siguiente programa?

Test : Conteste exclusivamente en una HOJA DE LECTURA ÓPTICA, no olvidando marcar que su tipo de examen es A.

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

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

Fundamentos de Ordenadores. Depurar programas usando Nemiver

PROGRAMA FORMATIVO WINDOWS XP PROFESIONAL COMPLETO

Programa de ayuda Sucesiones y Donaciones

FUNDAMENTOS DE INFORMÁTICA

Unidad Curricular: Tic y la Enseñanza en el Nivel Inicial y primario. Actividad N 10 Parte 2

Introducción a Java LSUB. 30 de enero de 2013 GSYC

Métodos. Los métodos pueden ser de un tipo específico como int, double, String, Cuenta, etc. o simplemente no tener algún tipo como void.

Instalación de la aplicación

void main(void) { string lname; list <string> lnamelist; cout << "Please enter your list of last names finishing with `.`"<<endl;

Manual de instalación AUTOFIRMA LA SEDE ELECTRÓNICA XUNTA DE GALICIA GUÍAS DE AYUDA DE

Introducción al lenguaje Java

Editor de código Visual Basic. Lista de miembros automática, sugerencias de sintaxis, autocompletado y otras opciones. (CU00313A)

Tema 7.- Fundamentos de la Programación Orientada a Objetos

Interprete comandos de Windows.

DAVID DIAZ VALDIVIA INFORMATICA APLICADA I

Agosto de 2012 TUTORIAL PSEINT. Servicio Nacional de Aprendizaje SENA Jordan Angulo Canabal

QUÉ ES UNA CLASE JAVA? ATRIBUTOS (PROPIEDADES O CAMPOS), CONSTRUCTOR Y MÉTODOS. (CU00623B)

Píxel. Un píxel ( picture element ) es la menor unidad homogénea en color que forma parte de una. fotograma de video, gráfico)

Manual del Integrador Contable Premium Soft

Programación Concurrente en Java: Threads. Ejemplos de programación concurrente. Luis Fernando Llana Díaz. 24 de abril de 2008

LÍNEAS SEPARADORAS. ETIQUETA <HR>. COMENTARIOS EN HTML. ATRIBUTOS SIZE, WIDTH, NOSHADE (DEPRECATED). EJEMPLOS (CU00716B)

Objetivos de la sesión. Aplicación de consola 7/30/11. Código con que se inicia un programa en Visual C# (aplicación de consola)

7ª Práctica. Matlab página 1 EJERCICIO 1. ORDENAR UN VECTOR CON EL MÉTODO DE LA BURBUJA...1

MICROSOFT WORD AVANZADO. Nº Horas: 18. Objetivos:

ESCUELA DE INFORMÁTICA

11.2. Manual de GTC 2.0: El primer contacto

75-62 Técnicas de Programación Concurrente II 2004 java Threads

Tema 7. Construcción de Applets en Java

HERRAMIENTAS BASICAS DE MANEJO DE WINDOWS

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

Arquitectura y Lenguaje Java

Objetos OLE 1. IMAGEN DE FONDO

Problemática con la actualización de Java 7 update 45

Programación de sistemas

REPRODUCCIÓN Y ARCHIVO

Tema 1. Introducción a programas en el lado del cliente

Microsoft Word 2003 (Completo)

4.1 Conceptos Básicos de Matlab. Matlab es creado por The MathWorks, el cual es un idioma de alto rendimiento

PROCESO DE SINCRONIZACIÓN

Computación II. Introducción a Visual Basic

Programa de ayuda Modelos Fiscales

Introducción a Windows 98

COLEGIO PABLO DE TARSO IED CONSTRUCCION DE PROYECTOS DE VIDA PRODUCTIVOS DREAMWEAVER UNO- PRÁCTICAS DOC RAUL MONROY PAMPLONA

TEMA 7: Ficheros. TEMA 7: Ficheros Concepto de fichero

1. El entorno de desarrollo Eclipse

Tema: Clases y Objetos en C#. Parte II.

Área Académica: Licenciatura en Derecho. Profesor: Lic. Virginia Argüelles Pascual

Manual de Usuario. Aplicación de Autoevaluación de Centros

Clonación de una máquina virtual

Apunte JAVA + SVN. Emi Höss

Laboratorio. Instalación de Visual Studio Community. Back To Basics Instalando Visual Studio Community. Versión: 1.0.

PROGRAMACION EN VISUAL BASIC

Threads. La plataforma JAVA soporta programas multhreading a través del lenguaje, de librerías y del sistema de ejecución. Dos.

Windows XP Profesional Completo

JAVA 7 Los fundamentos del lenguaje Java

Empezamos en la sección MIS PREZIS después de entrar con tu cuenta de usuario.

MANUAL DE ACTUALIZACIÓN DE CONSOLIDACIÓN

Shell Script de instalación y configuración para el servicio DHCP en CentOS v5.x. Manual de instrucciones.

1. El entorno de desarrollo Eclipse

Depurar programas

Serialización de datos en C# en Binario, Soap y Xml

Transcripción:

3UiFWLFD 3URJUDPDFLyQ-DYD San Sebastián, mayo 1999 -DYLHU*DUFtDGH-DOyQÂ -RVp,JQDFLR5RGUtJXH] $OIRQVR%UD]iOH]Â $OEHUWR/DU]DEDOÂ -HV~V&DOOHMDÂ -RQ*DUFtD

Informática 2: Práctica nº 13 página 1 INDICE Ejercicio 1: Mensajes desde un applet... 1 Ejercicio 2: Mensajes desde un applet 2... 3 Ejercicio 3: Cargar una imagen JPEG en un applet o aplicación... 3 Ejercicio 4: Cargar una imagen JPEG en un applet o aplicación adaptándola al tamaño del panel o ventana... 4 Ejercicio 5: Crea la clase Osciloscopio con una imagen estática... 4 Ejercicio 6: Crea la clase Osciloscopio2, incluyendo animación... 5 Antes de comenzar la práctica abre el Windows Explorer y comprueba que se ha creado de modo automático en tu disco G:\ un directorio llamado Inf2prac13. No deberás moverlo a otro subdirectorio ni cambiarle de nombre. Por motivos de orden es importante que todos los ejercicios de esta práctica se creen dentro de este directorio, porque esta semana se recogerá la práctica. Como recomendación general, mantén abierto el Windows Explorer y comprueba de vez en cuando que los proyectos de los distintos ejercicios se están guardando correctamente. Hay que evitar copiar los ejercicios de otra persona, principalmente porque así no se aprende a programar: a programar sólo se aprende programando. Puedes utilizar también Windows Explorer para ayudar a Visual J++ 6.0 a crear un proyecto nuevo a partir de los ficheros del anterior. Ejercicio 1: Mensajes desde un applet Crea un proyecto llamado Ejer1 en el directorio de la práctica. En este ejercicio se trata de crear un applet que envíe mensajes al usuario y que pueda trabajar también como aplicación. Por lo demás, lo único que hace es escribir Hola en un panel de 300x200 pixels. El fichero HTML se llamará Prueba1.htm y contendrá las siguientes sentencias: <HTML> <HEAD> <META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0"> <TITLE>Mensajes desde un applet</title> </HEAD> <BODY> <H3>Envío de mensajes desde un applet</h3> <APPLET code="mensajes.class" height="200" width="300"> </APPLET> </BODY> </HTML> Después de crear este fichero se debe crear la clase principal del programa que se llama Mensajes. El fichero se llamará Mensajes.java y contendrá las siguientes sentencias: // fichero Mensajes.java import java.applet.*; import java.awt.*; public class Mensajes extends Applet { // Variable miembro boolean aplicacion = false;

Informática 2: Práctica nº 13 página 2 public void start() { //la siguiente sentencia sólo ejecutando como applet if (aplicacion==false) { this.getappletcontext().showstatus("ejecutando el metodo start()"); System.out.println("Ejecutando el metodo start()"); public void stop() { //la siguiente sentencia sólo ejecutando como applet if (aplicacion==false) { this.getappletcontext().showstatus("ejecutando el metodo stop()"); System.out.println("Ejecutando el metodo stop()"); System.out.flush(); public void paint(graphics g) { g.setfont(new Font("serif", Font.BOLD, 24)); g.drawstring("hola", 100, 100); // programa principal para ejecutarse como aplicación public static void main (String[] args) { Mensajes ms = new Mensajes(); VentanaCerrable vc = new VentanaCerrable("Mensajes"); vc.setsize(300, 200); vc.setlocation(100, 100); vc.add(ms, "Center"); vc.show(); ms.aplicacion = true; ms.init(); ms.start(); // fin de la clase mensajes Entre los aspectos interesantes de este ejercicio está la posibilidad de ejecutarse como applet y como aplicación. Para poderse ejecutar como applet la clase Mensajes deriva de Applet; para ser también una aplicación independiente se ha incluido un método main() que crea un objeto de la clase VentanaCerrable y un objeto de la clase Mensajes, introduciendo este último en la parte central del primero. Obsérvese que como las applets no llaman al constructor, en la clase Mensajes no se ha definido ningún constructor: su papel lo hace el método init(), que debe ser llamado explícitamente en el método main(), al igual que el método start(). Este ejemplo escribe dos tipos de mensajes: uno a través de la barra de estado (con el método showstatus()) y otro a través de la salida estándar System.out, que para las aplicaciones es la consola de MS-DOS y para las applets la JavaConsole de Netscape Navigator o Internet Explorer. Observa que llamar al método showstatus() de la clase Applet no tiene sentido cuando el programa se está ejecutando como aplicación. Cuando un mismo programa tiene que funcionar como applet y aplicación esto puede suceder con bastante frecuencia por distintos motivos. En este caso lo que hay que hacer es definir en la clase Mensajes una variable miembro tipo boolean que permita saber si el programa se está ejecutando como applet o como aplicación. Por defecto esta variable es false, pero si se ejecuta main() se pone a true. Los ficheros para ejecutar este ejercicio están en el directorio Q:\Infor2\Prac13\Ejer1. Qué sucede al ejecutar este programa como applet? Consigues ver los mensajes en la barra de estado de Netscape? La impresión es que los mensajes salen pero que sólo están visibles mientras se ejecutan los métodos start() y stop(), que es un tiempo demasiado corto, pero se muestra de verdad? Para salir de dudas, resuelve el siguiente ejercicio.

Informática 2: Práctica nº 13 página 3 Ejercicio 2: Mensajes desde un applet 2 Crea con Visual J++ un proyecto llamado Ejer2 en el directorio de la práctica Inf2prac13. Copia a este directorio los ficheros Mensajes.java y VentanaCerrable.java resultado del ejercicio anterior. Cámbiales el nombre por Mensajes2.java y VentanaCerrableApplet.java. El ejecutable modelo de cómo debe quedar este ejercicio está en el directorio Q:\Infor2\Prac13\Ejer2. Ejecuta este programa como applet y como aplicación y observa lo que ocurre cuando se cambia de página (applet) o se cierra la ventana (aplicación). Este ejercicio tiene dos finalidades: 1. Introducir un tiempo de espera de tres segundos en los métodos start() y stop() de modo que el mensaje en la barra de estado sea apreciable. Para ello se puede utilizar el método sleep() de la clase Thread, pero para utilizar este método hay que obtener una referencia al thread activo con el método currentthread() de la clase Thread, que es un método static. 2. Además hay que modificar la clase VentanaCerrable (ahora VentanaCerrableApplet) de modo que antes de abandona la aplicación en el evento WindowClosing llame al método stop() de la clase Mensajes2. Como dicho método tiene una espera de tres segundos, la ventana tardará tres segundos en cerrarse. Ejercicio 3: Cargar una imagen JPEG en un applet o aplicación Crea un proyecto llamado Ejer3 en el directorio de la práctica Inf2prac13. Copia a este directorio los ficheros Imagen1.java, VentanaCerrable.java y PruebaImagen1.htm que se encuentran en Q:\Infor2\Prac13\Ejer3. Prueba a ejecutar el programa como applet y como aplicación. Como aplicación se basará en una ventana de 400x300 pixels. A continuación se muestra el fichero PruebaImagen1.htm, que incluye una llamada al applet: <HTML> <HEAD> <META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0"> <TITLE>Imágenes cargadas en un applet</title> </HEAD> <BODY> <H3>Ejemplo de imágenes cargadas en un applet</h3> <APPLET code="imagen1.class" height="200" width="400"> </APPLET> </BODY> </HTML> La clase Imagen1 debe incluir una imagen llamada Barsa.jpg. Para crear una imagen se debe utilizar el método getimage(). La cosa está en que este método es diferente si se trata de un applet (el método será Applet.getImage()) o de una aplicación (el método será Toolkit.getImage()). Después de cargar la imagen es necesario representarla con el método drawimage() de la clase Graphics, dentro del método paint(). Este programa funciona correctamente como aplicación tanto desde MS-DOS como desde Visual J++. Como applet funciona correctamente desde appletviewer y desde Internet Explorer 4.0, pero falla desde Netscape Navigator 4.5. El resultado de este ejercicio es una imagen como la mostrada en la Figura 1.

Informática 2: Práctica nº 13 página 4 Figura 1. Vista parcial de un equipo de fútbol que puede ganar la Liga. Puede comprobarse que la imagen se representa sólo parcialmente, porque su tamaño es más grande que el de la ventana. Ejercicio 4: Cargar una imagen JPEG en un applet o aplicación adaptándola al tamaño del panel o ventana Crea un proyecto llamado Ejer4. Los modelos y el ejecutable de este ejercicio están en el directorio Q:\Infor2\Prac13\Ejer4. El resultado de este ejercicio se muestra en la Figura 2. En este caso la ventana tiene un tamaño de 700x300 pixels. Figura 2. Imagen algo antigua de un equipo que puede ganar la Liga. Fundamentalmente, en este ejercicio se trata de adaptar la imagen al tamaño de la ventana. Para ello se puede utilizar el método getscaledinstance() de la clase Image, que permite cambiar el tamaño de la imagen, conservando o no la proporción entre altura y anchura. Ejercicio 5: Crea la clase Osciloscopio con una imagen estática Crea un nuevo proyecto llamado Ejer5. En este ejercicio se trata una vez más de crear un applet que pueda ser también ejecutado como aplicación. Se trata simplemente de dibujar una función sinusoidal en un panel de 400x 300 pixels, según se puede ver en la Figura 3. El applet muestra un aspecto similar. El fichero que contiene la clase se llamará Osciloscopio.java y el fichero HTML que llama al applet tendrá por nombre PruebaOscilos.htm. Una vez más hará falta también utilizar el fichero VentanaCerrable.java. La función sinusoidal a dibujar responde a la expresión matemática siguiente,

Informática 2: Práctica nº 13 página 5 x ( t) = X sin( ω t + ϕ) (1) donde X es la amplitud, ω la frecuencia natural y ϕ el ángulo de desfase. Otras variables que determinan este problema son las siguientes: T es el tiempo total representado (la anchura de la ventana en segundos) n número de periodos representados (en la Figura 3, 5 periodos) d objeto de la clase Dimension que contiene las dimensiones (anchura y altura) en pixels del panel en el que se realiza el dibujo. Figura 3. Pantalla principal de Osciloscopio ejecutado como aplicación. La relación entre la frecuencia ω y el periodo T/n es la siguiente: ω = 2πn (2) T Para realizar este dibujo se puede utilizar el método drawline() de la clase Graphics. La línea curva se dibuja como una sucesión de pequeños segmentos rectos. Por ejemplo, en la Figura 3 se han utilizado 20 segmentos por periodo, es decir 100 segmentos en total. Los ficheros ejecutables de este ejercicio que pueden ser utilizados como modelo se encuentran en el directorio Q:\Infor2\Prac13\Ejer5. Ejecútalos como aplicación y como applet observando bien su funcionamiento. Ejercicio 6: Crea la clase Osciloscopio2, incluyendo animación Crea un nuevo proyecto llamado Ejer6. Del ejercicio anterior copia en él los ficheros Osciloscopio.java, PruebaOscilos.htm y VentanaCerrable.java. Al primero de ellos cámbiale el nombre por Osciloscopio2.java. En este ejercicio se trata de modificar el ejercicio anterior para dar animación a los gráficos. La gráfica de la Figura 3 se modificará cambiando el parámetro ϕ, que aparece en la fórmula (1). Se deberá generar una nueva imagen cada 100 milisegundos. La diferencia entre dos imágenes sucesivas será un incremento en el ángulo ϕ de π/24 radianes. Para realizar este ejercicio se recomienda seguir los siguientes pasos: 1. Hacer que la clase Osciloscopio2 implemente la interface Runnable. Esto hará que el método run() del thread que se encargará de la animación se pueda definir dentro de la propia clase Osciloscopio2.

Informática 2: Práctica nº 13 página 6 2. La clase Osciloscopio2 definirá como nueva variable miembro una variable boolean llamada running que indicará si la animación está corriendo o no. De esta variable dependerá que el método run() siga ejecutándose o no. Además se definirá una nueva variable miembro de la clase Thread. 3. El método start() de Osciloscopio2 creará un thread pasando a su constructor la referencia this, para indicar que es la propia clase Osciloscopio2 la que proporciona el método run(). Después deberá poner la variable miembro running a true y llamar al método start() del thread. 4. El método stop() deberá poner la variable running a false para que el método run() concluya y se detenga el thread. Es relativamente sencillo realizar este ejercicio introduciendo threads y animación. Es un buen ejemplo de cómo se pueden construir este tipo de aplicaciones. Los ficheros ejecutables de este ejercicio se encuentran en Q:\Infor2\Prac13\Ejer6. Ejecútalos como aplicación y como applet observando bien su funcionamiento.