Home
Username:
Password:
Java: Introduction to Java Programming (Español) Tutorials

Introducción a los Applets / Applet de las Hojas de Otoño




Visitors to VTC.com will be able to view all introductory videos for each training course.
Free Trial Members will gain access to first three chapters for each training course.
Full Access Members have full access to VTC.com’s entire library of video tutorials.


Learn More

Subtitles of the Movie

En ésta lección, agruparemos varios elementos de las lecciones anteriores para crear un applet que despliegue unas hojas cayendo hacia la parte inferior de la ventana y después, volando con el viento. Así mismo, la fecha y hora actual se actualizan constantemente en la parte superior de ésta imagen. Éste puede no ser el applet más avanzado del mundo, pero puede mostrarnos la hora. Estos valores constantes se definen para indicar que la ventana… tendrá 100 hojas cayendo, de 4 especies diferentes. Cada imagen de una hoja es un archivo de tipo "gif" y tenemos 4 de ellos. Cada una de las hojas que caerán seleccionará una de éstas imágenes. Ésta es la Referencia "String", la cual contendrá la cadena con la fecha que será desplegada; éstas son sus posiciones en los ejes X y Y en la ventana. Observe que el objeto "String" se inicializa con una cadena en blanco. Existe una muy buena razón para esto, la cual explicaré al llegar al Método "paint". Éste es el Arreglo del objeto "Image" que va a contener las imágenes de las hojas y éstas son las posiciones en los ejes X y Y de cada hoja a medida que caen. Observe que ésta vez no utilizamos unos valores de tipo "double" para las ubicaciones, porque no hace falta tener un movimiento suavizado. A medida que cada hoja cae y es elevada por el viento, vamos a balancearla un poco. Seleccionamos un tipo de letra elegante para la fecha y la hora y configuramos un valor para la variable "bottom". Éste valor se compara con la posición en el eje Y de una hoja que cae, así que podemos determinar el momento en el cual ésta alcanza la parte inferior de la ventana. Las imágenes de las hojas tienen una altura de 20 píxeles, así que si la hoja se encuentra a 18 píxeles desde la parte inferior de la ventana, cancelamos su caída. Cargamos las imágenes de las hojas desde el servidor y las almacenamos en éste Arreglo. Agregamos cada hoja al Método "mediaTracker" y esperamos que todas se carguen. Finalmente, cada hoja se coloca horizontalmente fuera de la ventana en la parte derecha. De ésta manera, el Método "update" asume que todas hojas han sido elevadas fuera de la ventana, y por lo tanto, hará que caigan nuevamente desde la parte superior. Éste ciclo "for" dentro del Método "update" desplaza cada hoja a la siguiente posición en el Arreglo. Una hoja puede ser tratada de tres maneras. Si la hoja ha sido completamente desplazada fuera de la ventana y se encuentra oculta a la derecha, configuramos los valores de las variables "x" y "y" para que ésta vuelva a caer desde la parte superior. Ésta se oculta verticalmente a una distancia aleatoria sobre la ventana, y horizontalmente, en cualquier punto aleatorio entre los extremos de la ventana. En realidad, podemos colocarla un poco hacia la izquierda de la ventana, ya que las hojas se elevan hacia la derecha y si ninguna de ellas se eleva hacia la izquierda, la parte inferior izquierda de la ventana no tendría ninguna hoja. Veremos lo que quiero decir al ejecutar el applet. La combinación de sentencias "else-if" puede utilizarse en la sintaxis si tenemos más de dos opciones para escoger. Ésta no es una especie de estructura especial, simplemente, es una consecuencia de la sintaxis natural en el Java. Me gusta éste formato "else-if", así que lo utilizo a menudo. Si la hoja ha caído a la parte inferior de la ventana, se ajusta la posición horizontal en algún lugar entre 0 y 2 píxeles a la derecha. Al utilizar un valor distinto cada vez, hacemos que los movimientos sean ondulantes, agregando realismo al applet. La posición vertical se desplaza 1 píxel hacia arriba o hacia abajo o se conserva la posición actual, también con el propósito de agregar un movimiento ondulante. Si no se presenta ninguno de los dos casos anteriores, esto significa que la hoja está cayendo. La posición horizontal se desplaza 2 píxeles a la derecha o se conserva su posición actual. La posición vertical se aumenta en 1 píxel, provocando que las hojas caigan y se aceleren, las cuales se balancean un poco al hacerlo. Éste es un ejemplo de la utilización de una Clase del Java sin tener que nombrarla en una sentencia "import". Al utilizar su nombre completo al referirnos a ella, no dejamos ningún elemento indefinido que deba ser buscado por el compilador. De cualquier manera, hemos creado un objeto "date" sin ningún argumento, así que éste contiene la fecha y la hora equivalentes. La Clase "Date" del Java contiene muchos Métodos para realizar operaciones aritméticas y comparar fechas y horas. Ésta conserva el tiempo al milisegundo más cercano y contiene un rango de varios miles de años hacia el pasado y el futuro. No tendremos que preocuparnos por otro problema como el Y2K por un tiempo, probablemente hasta el año 10000, cuando se descubra que el lenguaje Cobol necesita otro dígito. Como cualquier otro objeto, el objeto "Date" puede ser convertido en una cadena, al realizar un llamado al Método "toString". Ésta es la cadena que queremos desplegar. Al utilizar un objeto "FontMetrics", calculamos las posiciones en los ejes X y Y requeridas para desplegar la cadena en la ventana. Dentro del Método "paint", éste ciclo despliega cada una de las imágenes en su posición actual en los ejes X y Y. Ésta línea de código se utiliza para seleccionar la imagen que será utilizada para cada hoja. Tendremos muchas más hojas que imágenes, así que el índice en el Arreglo de la ubicación en los ejes X y Y de la hoja, se divide por el número de imágenes. El residuo de ésta división se utiliza como un índice en el Arreglo de imágenes. Éste es el operador modular del cual hablamos anteriormente y que suele ser útil en los lugares más extraños. Configuramos el color y el tipo de letra para la cadena, la cual se despliega por encima de los demás elementos en la ventana. Podríamos desplegar antes la cadena y la hojas caerían en frente de ésta o incluso, podríamos desplegar algunas hojas antes y otras después de la cadena para que unas aparezcan por detrás y otras por delante de la misma. De cualquier manera, mencioné que sería necesario inicializar la cadena "banner". La razón para hacerlo es que el navegador de red puede realizar un llamado al Método "paint" antes de que se inicie la animación. Si al generar un Hilo de Ejecución para crear la animación, el navegador de red decide realizar primero un llamado al Método "paint", podríamos obtener un problema con la cadena anterior. Éste comportamiento es muy frecuente al utilizar Hilos de Ejecución que son asíncronos. Debemos recordar que el Método "paint" siempre debe estar listo, pues puede ser llamado en cualquier momento, tanto después del Método "init" como antes del Método "start". Debemos prever todas las acciones del programa y no confiar en un navegador de red. Al ejecutar éste applet en su sistema, usted verá la hora local de su computadora. Creo que ha pasado la hora del almuerzo, así que debo irme. u sistema, usted verá la hora local de su computadora. Creo que ha pasado la hora del almuerzo, así que debo irme.

Tutorial Information

Course: Java: Introduction to Java Programming (Español)
Author: Arthur Griffith
SKU: 33644
ISBN: 1-932808-86-8
Release Date: 2005-09-22
Duration: 8.5 hrs / 92 lessons
Captions: Available on CD and Online University
Compatibility: Vista/XP/2000, OS X, Linux
QuickTime 7, Flash 8

VTC Sign up & Benefits

  • Unlimited Access
  • 98,729 Video Tutorials (23,265 free)
  • Video Available as Flash or QuickTime
  • Over 1026 Courses
  • $30 for One Month Access
  • Multi-User Discounts Available