>>
Lección 01



¿Qué es Java?


Java es un lenguaje de programación creado por Sun Microsystems. que ha tenido gran aceptación a nivel mundial y se ha convertido en el standard de facto en muchos ámbitos como el académico y el de grandes proyectos interdisciplinarios. 

Java se ha hecho famoso por varias razones. Las tres principales son 1) que es un lenguaje muy adecuado para desarrollar aplicaciones para Internet, 2 ) es un buen lenguaje general de programación orientada a objetos y 3)   las aplicaciones desarrolladas en Java son o pueden ser independientes de la plataforma, es decir, del hardware y del sistema operativo.

Hay otras razones que se mencionan frecuentemente cuando se trata de explicar el fenómeno Java como por ejemplo el sistema de seguridad que ofrece, pero probablemente la capacidad de Java para crear applets, los "pequeños" programas que pueden incluirse en páginas Web, es lo que más ha contribuido a la popularidad de Java.


Applets.


Un applet es un programa con una interfaz gráfica que puede insertarse en una página web. Por ejemplo la calculadora que aparece a continuación es un applet.

Aquí vería un applet si su navegador reconociese la etiqueta de APPLET.

Como el lector podrá comprobar, no es una imagen estática sino una auténtica calculadora que el lector puede utilizar para realizar operaciones numéricas.

Los applets se escriben en lenguaje Java. El código de un applet lo interpreta el propio navegador. Los primeros navegadores de internet no interpretaban applets pues esto aún no existían cuando la web comenzó a funcionar, pero a partir de las versiones 3 de Internet Explorer y Netscape ambos interpretan applets. La capacidad de los navegadores de internet para interpretar applets es una de las formas más populares y convenientes de incluir interactividad en páginas web, pero es importante mencionar que no es la única, hay otras como por ejemplo JavaScript y la tecnología ActiveX de Microsoft. Los applets tienen virtudes y limitaciones y es importante conocer ambas antes de decidir si es conveniente desarrollar una aplicación concreta en forma de applet o no. Hay aplicaciones para las cuales el formato del un applet puede ser ideal y otras para las cuales resultaría erróneo. Esto debe decidirlo el desarrollador antes de comenzar a desarrollar la aplicación y para ello debe conocer perfectamente las virtudes y limitaciones de los applets. 

La mayor virtud de los applets es su universalidad. Un applet insertado en una página web en principio puede utilizarse en cualquier computadora con tal que tenga un navegador de internet que entienda Java. Una persona puede desarrollar un applet usando una PC con windows, insertar su applet en una página web, ponerla en un servidor de internet e instantáneamente su applet puede ser cargado y ejecutado en cualquier parte de mundo desde cualquier computadora conectada a internet. Para que esto ocurra no es necesaria ninguna intalación en la computadora del cliente, basta tener la dirección (URL) del sitio donde etá la página con el applet. Otra importante virtud de los applets es la seguridad que ofrecen al usuario. Un applet, por diseño, no puede acceder a los recursos del sistema del cliente en donde se está ejecutando, por lo cual no puede leeer la información del cliente, ni modificarla ni destruirla.

La mayor limitación de un applet es su prohibición de acceder al disco fijo del cliente, por lo cual desde un applet no se puede guardar información localmente. Otra limitación importante es la prohibición de usar el "clipboard" o "portapapeles" del sistema con lo cual los procesos comunes de copiar y pegar resultan incompletos. Estas limitaciones no se deben a ninguna pobreza del lenguaje Java, un programa Java autónomo no tiene ninguna de estas limitaciones, sino que se deben precisamente al sistema de seguridad de los applets. Sin estas limitaciones un programador mal intencionado podría crear un applet que lea la información del cliente, la altere o la destruya. Así que las limitaciones de los applets se deben precisamente a una de sus principales virtudes, la seguridad que ofrecen al usuario.

El sistema de seguridad de los applets funciona muy bien, se le han encontrado algunos fallos que se han corregido en versiones posteriores. Actualmente se considera imposible crear un applet nocivo. Lo que no es difícil encontrar es un applet molesto. Un applet puede adueñarse temporalmente de los recursos multimedia de una computadora y ocupar intensamente el procesador de tal manera que puede incluso ser necesario apagar la computadora para librarse del problema. Esto puede llegar a ocurrir sin que el programador tenga ninguna mala intención, por error en la implementación. Por este motivo es importante aprender a programar correctamente los applets y éstos deben probarse exhaustivamente antes de ponerlos en Internet al alcance del público.

Hay maneras de saltarse las limitaciones de un applet. En particular existe la posibilidad de firmar un applet y que el cliente decida si permite a un applet con una firma conocida, acceder a los recursos de su computadora. Esta tecnología está muy desarrollada en Java 2 y puede ser muy útil en los casos de aplicaciones a las que el formato de applet es conveniente pero que requiren un acceso menos limitado a los recursos del sistema del cliente. 


Aplicaciones autónomas en Java


Java es un lenguaje de programación completo. El hecho de que con Java se puedan crear applets no debe interpretarse como que Java es un lenguaje para hacer applets. Java es un lenguaje de programación muy poderoso que tiene muchas otras virtudes. Las más importantes son:

1) Java es un lenguaje orientado objetos.

2) Java cuenta con una librería de programación muy amplia y completa que lo hace competitivo con cualquier otro lenguaje y que incluye facilidades muy avanzadas para el desarrollo de programas distribuidos en internet.

3) Java es multiplaforma, es decir, un programa (bien) escrito en Java puede ejecutarse en cualquier computadora con cualquier sistema operativo, siempre y cuando cuente con un intérprete actualizado de Java, es decir una JVM (Java Virtual Machine).

4) Java cuenta con un avanzado sistema de seguridad (que no está limitado a los applets).

Un programa Java, ya sea un applet o una aplicación autónoma, puede ejecutarse en cualquier sistema operativo siempre y cuando tenga instalado un navegador que interprete applets o, en el caso de las aplicaciones autónomas, un intérprete de Java. Pero los diferentes navegadores y los intérpretes de Java para distintos sistemas operativos no funcionan exactamente igual y producen resultados desiguales. Por tanto, cuando se hace un programa en Java, ya sea un applet o una aplicación autónoma, antes de publicarlo es conveniente  probar su funcionamiento en los navegadores más comunes o en los diversos intérpretes y ajustar las diferencias para que los resultados sean aceptables.

Uno de los defectos que se atribuyen a Java es que es lento por ser un lenguaje interpretado, es decir, el código Java no es código de máquina para una computadora específica sino código para una "máquina virtual" (la Java Virtual Machine) que puede implementarse en diversas computadoras y sistemas operativos. Tradicionalmente se considera que los lenguajes interpretados son lentos. Sin embargo la velocidad de interpretación de Java es muy variable. Por ejemplo es fácil comprobar que el IExplorer de Microsoft 3.0 es notoriamente más rápido para interpretar un mismo código Java que Netscape 3.0. Sin embargo en las versiones posteriores de ambos navegadores las diferencias son menos notorias. Para la mayoría de las aplicaciones la velocidad de ejecución de Java es perfectamente satisfactoria, como podrá comprobarse con los ejemplos que se verán a lo largo del curso. Además, la tecnología JIT (Just In Time compiling) que consiste en que el intérprete de Java no interpreta directamente el código Java sino que antes lo traduce a código ensamblador y luego lo ejecuta, hace prácticamente idéntica la velocidad de proceso de un programa Java y uno escrito en C.

Un problema que existía en la versión 1.0 de Java era la el tiempo que se requería para cargar un applet debido a todos los trámites que la seguridad de Java requiere. Por este motivo los primeros applets tenían que ser simples y pequeños. Sin embargo la aparición en la versión 1.1 del sistema de archivos .jar que pueden contener todas las clases de un applet hizo prácticamente desaparecer este problema.

Todavía es importante tratar de limitar el tamaño total de un archivo .jar para un applet. Más de 30 Kb de código puede ser demasiado en algunos casos. Pero aún esta limitación se hace cada vez menos importante a medida que se instalan líneas de mayor ancho de banda.

Una gran ventaja de los navegadores para la ejecución de applets es que cunado un applet se carga por segunda vez en una misma sesión (sin cerrar el navegador), el navegador ya lo encuentra guardado en el cache y no tiene que realizar los trámites de seguridad ni traerlo del servidor al cliente, con lo cual resulta muy rápido. Esta característica sin embargo puede ser problemática para quienes desarrollan applets, pues los navegadores no distinguen las nuevas versiones que se acaban de crear y para probar una nueva versión es necesario cerrar el navegador y volver a abrirlo, lo cual constituye una gran pérdida de tiempo para el programador. Sin embargo no se trata de un problema grave si se trabaja con una computadora con al menos 64 MB de RAM.

A pesar de las pequeñas dificultades mencionadas, Java es un magnífico lenguaje de programación y creemos que gran parte del software que se desarrollará en los próximos años se escribirá en Java.


Java y JavaScript


Es importante aclarar que JavaScript y Java son cosas diferentes. JavaScript es un lenguaje de programación exclusivamente para páginas Web. JavaScript fue desarrollado por Netscape. De hecho Netscape iba a llamar "LiveScript" a su lenguage de programación para páginas Web, pero ante la popularidad que Java estaba adquiriendo y aprovechando el parecido de la sintaxis de ambos lenguajes, decidieron llamarle JavaScript.

Ambos lenguajes han aprovechado la sintaxis del C++ por lo cual su código es parecido.

JavaScript es especialmente adecuado para enriquecer una página Web pues tiene control sobre ella, puede ofrecer interacciones dentro de una página, puede generar páginas al instante dependientes de lo que el usuario elija e incluso puede controlar applets de Java que se encuentren en la página. Pero las clases que se pueden crear con JavaScript sólo tienen validez dentro de la página Web donde se crearon, por lo tanto no se pueden crear librerías de clases y extender así su poder.

Java no ofrece control sobre una página Web pero en cambio es un lenguaje de programación completo con el que se pueden crear y extender clases, formar paquetes o librerías de clases, crear aplicaciones independientes y además crear applets, que son programas que habitan en páginas Web y pueden enriquecerlas mucho.

Aunque la sintaxis de ambos lenguajes es parecida, en realidad son lenguajes muy diferentes. Java es muy estricto en cuestión de tipos de variables como el Pascal o el C++ mientras que JavaScript no lo es.

Ambos lenguajes pueden colaborar perfectamente dentro de una página Web.

Para utilizar JavaScript basta aprender el lenguaje y usarlo dentro de las páginas Web, en cambio para utilizar Java es necesario usar al menos un compilador de Java. Sun Microsystems ha creado un paquete de desarrollo de aplicaciones en Java que se denomina "Java Development Kit", del cual trata la siguiente lección.


El "Java Development Kit"


El "Java Development Kit" (JDK) es el paquete de desarrollo que ofrece y distribuye gratuitamente Sun Microsystems a los desarrolladores de Java. 

El JDK 1.0 apareció al público a principios de 1996 y tuvo varias revisiones, como la 1.02 y la 1.04.

En 1997 apareció la versión 1.1  (http://java.sun.com/products/jdk/1.1/index.html). Esta versión introdujo cambios muy importantes, por ejemplo se mejoró considerablemente el AWT (Abstract Windowing Toolkit), que es la interfaz gráfica de Java, sobre todo en el manejo de los eventos. En Java Development Kit 1.1.x Brochure se presenta una descripción detallada de las novedades que aportó el JDK 1.1. A la fecha de la publicación de este curso (agosto de 2002) la última revisión del JDK 1.1 es la 1.1.8 que se sigue utilizando como el standard para la creación de applets confiables y universales y constituye también el standard en cuanto a las librerías básicas de Java y que sin embargo Sun dejará de distribuir en el año 2002. 

En 1998 aparece lo que ahora se llama Java 2, que introduce mejoras en el sistema de seguridad de aplicaciones distribuidas, agrega, entre otras cosas, una interfaz gráfica más potente llamada JFC (Java Foundations Classes) y conocida popularmente como herramientas "swing". La versión vigente de Java 2 en el momento de la publicación de este curso (agosto de 2001) es Java 2 SDK, Standard Edition, v. 1.3 http://java.sun.com/products/j2se/1.3/ (SDK son las siglas de Software Development Kit). Las mejoras introducidas pueden leerse en http://java.sun.com/j2se/1.3/docs/relnotes/features.html.   

Muchas de las adiciones que se encuentran en Java 2 aparecieron como paquetes opcionales que podían agregarse al JDK 1.1. Hay muchos paquetes que están en desarrollo y se pueden utilizar pero que aún no han alcanzado la madurez suficiente para pertencer al SDK. El programador de Java debe estar siempre atento a estos desarrollos que pueden consultarse en las páginas de Sun: http://java.sun.com.

Las versiones más recientes en el entorno Windows de los dos navegadores más populares son Internet Explorer 5.5 (http://www.microsoft.com/) y Netscape 6.1 (http://home.netscape.com/). Ninguno de estos dos navegadores da soporte a los applets creados con el Java 2 SDK, por lo cual para ejecutar estos applets es necesario realizar la instalación de un "plug-in" en la computadora del cliente, lo cual resulta muy inconveniente en ciertos medios donde los applets se utilizan frecuentemente. Por este motivo es conveniente conocer bien el JDK 1.1.8 y toda su potencia, que no es poca. 

El Java 2 SDK es aún más potente que el JDK 1.1. Por otro lado, Sun dejará de distribuir el JDK 1.1.8 en el año 2002. Por estas dos razones es también muy importante conocer el Java 2 SDK.

Debido a esta situación durante la primera parte del curso se utilizará el JDK 1.1.8 y, como el presente es un curso introductorio y es imposible cubrir la mayor parte de la nueva funcionalidad que ofrece Java 2, sólo en las últimas lecciones se hablará del Java 2 SDK 1.3.

Este curso se centra en las cuestiones básicas del lenguaje Java que aparecen ya completamente desarrolladas en la versión 1.1. Son cuestiones que no cambian en Java 2 y por lo tanto todo lo que cubre el curso es compatible con Java 2. 

La instalación el JDK consiste en descargarlo, con lo cual se obtiene un archivo ejecutable (por ejemplo para el JDK 1.1.8 en Windows98, este archivo se llama  jdk-1_1_8_008-win.exe) y ejecutarlo, lo cual realiza la instalación. Además de esta instalación se recomienda que en el autoexec.bat de su computadora escriba la línea:

set path=%path%;c:\jdk1.1.8\bin

supóniendo que c:\jdk1.1.8 es donde instaló el jdk.

También se recomienda que descargue e instale en su computadora (en el mismo directorio donde se instaló el jdk) la documentación correspondiente (en formato html):

http://java.sun.com/products/jdk/1.1/docs.html.

Esta documentación puede consultarse en línea en:

http://java.sun.com/products/jdk/1.1/docs/index.html

La documentación de Java es excelente y constituye una herramienta imprescindible para el programador. Se recomienda al alumno se familiarice con ella para lo cual conviene que navegue por sus páginas, entienda su organización y lea algunas partes para familiarizarse con su lenguaje.

La documentación de Java 2 http://java.sun.com/j2se/1.3/docs/ es aún mejor que la de Java 1.1 y se puede utilizar aún cuando se trabaje con el JDK 1.1.8 pues en ella se especifica desde qué versión es válida cada clase o método. Conviene que el alumno también se familiarice con la documentación de Java 2 para ir conociendo la nueva funcionalidad que ofrece. 

Por otro lado Sun ofrece también un excelente tutorial en línea para aprender Java: http://java.sun.com/docs/books/tutorial/ que utilizaremos como lectura recomendada para este curso. 

El JDK consta de un conjunto de programas que hay que llamar desde la línea de comandos (en Windows debe hacerse desde una ventana del DOS). Los más importantes para este curso son java.exe que es el intérprete o "runtime" de Java y javac.exe que es el compilador. Los programas del JDK 1.1.8 se encuentran en el directorio c:\jdk1.1.8\bin (que es la razón por la cual  conviene agregar la línea set path=%path%;c:\jdk1.1.8\bin al autoexec.bat.

Los programas Java constan de archivos con extensión .class que contienen el código para la máquina virtual de Java, es decir, un programa que se encarga de convertir en tiempo de ejecución ese código en código del procesador. Por este motivo es necesario usar un intérprete de java para ejecutar los ficheros .class. Este intérprete es precisamente java.exe.

Para ejecutar un programa Java cuyo código comienza en la clase miprograma.class, hay que llamar desde la línea de comandos

java miprograma

Como en muchos lenguajes de programación, un programa Java se escribe en un archivo de texto puro (¡no en formato doc o rtf!) y que tiene extensión .java.   El programa que se encarga de compilar el texto, es decir, de convertirlo en código para la máquina virtual es el compilador javac.exe. Para compilar un archivo .java hay que ejecutar javac.exe pasándole como parámetro el nombre con extensión del archivo .java, es decir

javac miprograma.java

Esta llamada creará el archivo miprograma.class, suponiendo que miprograma.java no contien errores. Si hay errores, el compilador los detecta y los escribe en la consola. Cuando hay muchos errores los primeros se pierden arriba de la pantalla. Esta es una de las razones por las que conviene utilizar un entorno de programación más adecuado como el que ofrece el JCreator que es un magnífico programa que tiene una versión de libre distribución (freeware) que puede descargarse de: http://www.jcreator.com. En el subdirectorio: JCreatorFiles del directorio principal de este curso se puede encontrar un "workspace" para todos los "proyectos" del curso y un proyecto para cada lección del curso. Recomendamos a los alumnos utilizarlos para facilitar y agilizar su trabajo. A diferencia de algunos otros entornos de programación Java, éste puede utilizar el compilador y el JDK específicos que el usuario decida por lo que el resultado de la compilación es el mismo que se obtendría utilizando el javac.exe desde la línea de comandos. No es un entorno de programación visual, y precisamente por eso resulta también muy adecuada para este curso pues su objetivo es enseñar la programación Java "dura" que siempre resulta más potente. La programación visual puede ser muy conveniente en algunos proyectos, pero también puede acabar siendo un estorbo en otros proyectos. Esto por supuesto es cuestión de gustos. De cualquier manera, este curso no es sobre programación visual sino sobre programación "dura".  

El JDK tiene un visualizador de applets llamado appletviewer.exe que sirve para ejecutar los applets de una página Web sin ver el resto de la página. La llamada

appletviewer pagina.html

hecha desde la línea de comandos, ejecuta los applets que se invocan desde pagina.html. El appletviewer puede ser útil para "debuguear" applets.

Además de java.exe, javac.exe y appletviewer.exe, el JDK tiene: un "debuger" llamado jdb.exe; un programa javadoc.exe que genera documentación automática de cada clase y paquete a partir de unos comentarios especiales que se pueden poner en los archivos con extensión .java. Hay un programa javah.exe que genera encabezados (archivos .h) y código en C (archivos .c) que describen las classes especificadas en un archivo .java. Hay un programa javap.exe que desensambla los archivos .class e imprime una versión en formato de texto más o menos legible. Hay otras herramientas del jdk que pueden consultarse en http://java.sun.com/j2se/1.3/docs/tooldocs/tools.html#basic.

Las herramientas del JDK que utilizaremos son solamente el intérprete java.exe (o jre.exe y jrew.exe que son las versiones para usuarios finales) y ocasionalmente el appletviewer.exe que es útil para ir probando los applets que se están desarrollando.

Es importante saber que Java tiene muchas clases predefinidas que sirven como librerías de programación. Estas clases están organizadas en paquetes que en conjunto se conocen como el API (¿Alguien recuerda de dónde vienen estas siglas?) de Java. La documentación de estos paquetes constituye la mayor parte de la documentación de Java ver

http://java.sun.com/products/jdk/1.1/docs/api/index.html   y  http://java.sun.com/j2se/1.3/docs/api/index.html.

A lo largo de este curso iremos aprendiendo a usar partes de todos estos paquetes de clases.

En la documentación de Java hay un descripción detallada de la convención de escritura de código recomendada:

http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html

Los alumnos del curso deberán aprender y usar esta convención como parte de su aprendizaje. La mayor parte podrán aprenderla imitando el estilo de los ejemplos del curso, pero se les recomienda consultar la documentación cuando tengan dudas. 


Paquetes básicos del JDK.


El JDK (Java Development Kit) 1.0 tenía sólo estos ocho paquetes, seis de ellos siguen siendo los paquetes básicos de java y que el programador debe conocer muy bien.

java.applet

Todo sobre los applets, es una clase pequeña

java.awt

Windows y sus controles, es una clase amplia y compleja.

java.io

Lectura y escritura de archivos a través de Streams

java.lang

Matemáticas, Strings, Hilos y otras cosas básicas.

java.net

Todo sobre conexiones a internet

java.util

Algunas clases útiles

Aún este pequeño subconjunto de paquetes es un material muy extenso que no es posible presentar completo en un curso. Lo que haremos es mostrar cómo se usan las principales clases de estos paquetes analizando los ejemplos desarrollados especialmente para el curso. Ponga atención a las importaciones que se declaran al principio de cada archivo java. En ellas se especifican los paquetes que se van a usar. Por ejemplo

import java.applet.*;

indica que se van a usar las clases del paquete java.applet. El paquete java.lang es el único que no necesita importarse nunca.


HelloWorld.


Desde que Kernighan y Ritchie publicaron el lenguaje de programación C, es tradición comenzar el estudio de un nuevo lenguaje con un programa llamado HelloWorld.

Fieles a esta tradición presentamos aquí el contenido del fichero HelloWorld.java que contiene el código Java íntegro de nuestro primer programa.

Este es su contenido:

Si su navegador reconociese la etiqueta de applet, aquí vería un applet

Hay dos cosas que hacer con este programa, comprender su contenido y ejecutarlo.

Comencemos por ejecutarlo. Para ello antes hay que compilar el archivo HelloWorld.java. En Windows esto se hace abriendo una ventana del DOS, pasando al directorio principal del curso, escribiendo:

javac ejem01\HelloWorld.java

y pulsando intro. Esta serie de instrucciones invoca al compilador de Java y crea el archivo HelloWorld.class que contiene la "clase" ejem01.HelloWorld, es decir, el código del programa.

Ahora el programa ya se puede ejecutar. Esto se hace llamando al intérprete de Java pasándole como parámetro el nombre completo de la clase (sin extensión pero incluyendo como prefijo el paquete al que pertenece). Es decir, hay que escribir:

java ejem01.HelloWorld

y pulsar intro. El programa responde escribiendo la frase: Hello World!

Nota: Java es sensible a mayúsculas y minúsculas, tanto en los nombres de clases, métodos y variables como en los nombres de archivos. Por lo tanto, aunque para el sistema operativo en uso helloworld.class y HelloWorld .class puedan ser iguales, para los programas del JDK son distintos y si Ud. intenta ejecutar helloworld en lugar de Helloworld el intérprete java.exe dará un error. 

Analizaremos el contenido del programa. Cada nuevo concepto que aparece en itálicas tiene una importancia fundamental pero no los vamos a definir ni explicar en detalle sino que volveremos a ellos una y otra vez en los ejemplos posteriores para que su significado se vaya aclarando. Algunas apariciones de estas palabras tienen conexiones a las páginas que pueden enriquecer el concepto.

Comenzamos por la primera línea:

package ejem01;

que especifica el "paquete" al que va a pertenecer la clase que vamos a crear. Si la línea del paquete no se incluye en una clase ésta pertenece al paquete por defecto que es el que tiene nombre vacío.

La siguiente línea:

public class HelloWorld

es un encabezado típico de Java en el que se especifica que se va a definir una clase llamada HelloWorld y que ésta es pública. Todos los elementos de un programa Java son clases o partes de una clase. Una clase puede tener variables y métodos. Las variables pueden ser instancias de una clase o variables simples. Los métodos son los elementos que contienen las instrucciones del progama, es decir, lo que en C se llaman funciones y en Pascal se llaman procedimientos y también funciones. Las variables y los métodos de una clase deben definirse entre dos llaves. { abre la lista de estas definiciones y } la cierra.

Nuestra clase HelloWorld tiene un solo método y no tiene variables. La segunda línea del programa define el único método de nuestra clase.

public static void main(String[] args)

Esta línea afirma que se va a definir un método llamado main que es de carácter público y estático y que no devuelve ningún valor (es lo que indica la palabra void). Los paréntesis que aparecen a la derecha de la palabra main encierran los parámetros que se pasan al método main.

El contenido del método main se encierra también entre dos llaves { y }. Un método contiene principalmente llamadas a los métodos de la propia clase o de otras clases. Nuestro método main tiene una sola llamada que se especifica en la línea:

java.lang.System.out.println("Hello World!");

Esta línea es una llamada al método println de la variable out de la clase java.lang.System. out es un objeto o instancia de la clase java.io.PrintStream. Esta terminología irá aclarándose poco a poco a lo largo del curso.


HelloWeb, un primer applet.


Un applet es un archivo con extensión .class como todos los programas de Java, pero que no se interpreta usando java.exe sino que debe ejecutarse usando un navegador de internet (como IExplorer o Netscape). Para ello debe utilizarse necesariamente una página web, es decir, un archivo con extensión .htm o .html escrito en el lenguaje HTML. Dentro del código de la página web debe incluirse la llamada al applet usando un formato como este:

Si su navegador reconociese la etiqueta de applet, aquí vería un applet

En particular esta ventana es un applet y el texto que muestra es precisamente el que se usa para insertar este applet en esta página. El código del applet se especifica como code="showlib.showText.class".  

Vamos ahora a crear nuestro primer applet, lo llamaremos HelloWeb. He aquí una transcripción del fichero HelloWeb.java en el que se define el applet:

Si su navegador reconociese la etiqueta de applet, aquí vería un applet

Como en los casos anteriores, para ejecutar el programa antes hay que compilarlo con el procedimiento habitual, es decir, hay que pasar a la línea de comandos y hacer la llamada:

javac ejem01\HelloWeb.java

Pero un applet no se puede ejecutar como otras clases de java. Hay que llamarlo desde una página Web o HTML para que cuando un navegador cargue la página, lo ejecute. Para ello hemos aprovechado esta misma página por lo cual aquí abajo verá este applet ejecutándose:

applet que dice Hello Web!

No es muy espectacular pero es muy sencillo. Los otros ejemplos que veremos en el curso le darán una idea más clara de las muchas posibilidades de los applets.

Aquí está el código HTML necesario para incluir este applet en una página web.

Si su navegador reconociese la etiqueta de applet, aquí vería un applet

Hemos creado otra página HW.html en el subdirectorio ./ejem01/. Entrando a ella podrá ver otra vez el applet HelloWeb ejecutándose.

Este es el código HTML de la página HW.html:

Si su navegador reconociese la etiqueta de applet, aquí vería un applet

Como el lector podrá comprobar en esta página el codebase ha cambiado de codebase="./" a codebase="../" indicando que se debe comenzar la búsqueda de la clase a partir del nivel superior de donde se encuentra la página.

Hay otra manera de ver un applet en ejecución, pero siempre a través de un archivo html: desde la línea de comandos se puede hacer la llamada:

appletviewer ejem01\HW.html

El programa appletviewer.exe no es un navegador pero ejecuta los applets insertados en el html que se le pasa como parámetro. Lo hace en una ventana especial para cada applet.

Hay muchos detalles sutiles en la forma de insertar un applet en una página Web, pero la idea es muy sencilla. Se comienza con la etiqueta de applet y se le agregan code= y el nombre completo del applet, que como ya hemos explicado es un archivo con extensión .class. El codebase es en general un URL (Unique Resource Locator) que puede expresarse en términos absolutos como http://xxx.com.mx/subdir o en términos relativos a la localización de la página Web, como en los ejemplos anteriores. Luego hay que poner en width y height el ancho y el alto del applet en pixels. Estos son datos obligatorios, excepto el codebase que es opcional y si se omite se interpreta como el mismo URL donde se encuentra la página Web.

En alt puede escribirse el texto que aparecerá si el navegador entiende la etiqueta applet pero no está habilitado para interpretar Java. Luego vienen los parámetros que se le pasan al applet, siempre en forma de cuerdas de texto. El applet recibe estos parámetros si está programado para reconocer los nombres de los mismos y asigna los valores a unas variables internas o toma decisiones usándolos. Finalmente, antes de cerrar la etiqueta applet se puede escribir el texto queaparecerá en lugar del applet si el navegador no entiende la etiqueta applet.


Índice

Ejercicios de la Lección 01.


José Luis Abreu y Marta Oliveró