Al arrancar el programa se escuchará una melodía que se podrá detener pulsando el botón "Parar sonido" de la pestaña "Presentación". El otro botón de la misma pestaña presenta los temas de ayuda.
LA PRIMERA APLICACIÓN.
Si pulsa el siguiente enlace encontrará los pasos para crear una breve aplicación que sirva de ejemplo. No se tendrá en cuenta ningún rigor técnico para llegar lo más rápidamente posible al objetivo inicial: Comprender cómo empezar a conseguir resultados con un sistema de programación completamente desconocido.
LAS OPCIONES DE ARCHIVO.
Las opciones de archivo sirven para crear o abrir aplicaciones y componentes, así como guardarlos, las opciones típicas de impresión y el cambio entre versión 1.3 y 1.0 (por defecto estará activa la 1.3 y presenta la posibilidad de cambiar a la 1.0). Otras dos opciones importantes son la generación de un applet o un componente.
En AutoJava se trabaja con componentes, que pueden ser simples contenidos gráficos o verdaderos programas. Por lo tanto, una aplicación será un conjunto de componentes y un programa que establece las relaciones entre ellos y entre el usuario final de la aplicación. Cuando se guarda, el archivo resultante se identifica por la extensión "apl" (cuando se abra de nuevo, es el archivo de extensión apl el que se deberá buscar). Los componentes, siempre que su finalidad lo permita, son reutilizables en cualquier aplicación y se pueden guardar por separado. Por ejemplo, el robot de la introducción se podría utilizar en otra aplicación con una finalidad muy distinta que la de jugar al tres en raya. Dentro de una aplicación se pueden crear componentes nuevos y también abrir otros ya existentes. Cuando un componente se modifica y se guarda, los cambios no afectan a otras aplicaciones que lo hayan utilizado, porque cada aplicación contiene sus propias copias de sus componentes, que no son afectadas por los cambios en el original. Por la misma razón, el archivo de un componente puede ser borrado incluso y no afecta por ello a las aplicaciones. Se nos puede presentar el caso de necesitar un componente al que tengamos que modificar para adaptarlo a nuestra aplicación. Una vez hecho y guardada la aplicación no será necesario guardar también el componente, a menos que deseemos dejar modificado el componente original.
Cuando se crea una aplicación nueva, se piden dos cosas: El directorio en el que crearla y el nombre (sin extensión). Cuando se guarde posteriormente, se creará en el directorio un archivo ejecutable con igual nombre que la aplicación (y extensión jar) y un subdirectorio (con igual nombre que la aplicación) donde se recopilan automáticamente todos los archivos necesarios (imágenes, sonidos, etc.), incluyendo el archivo de extensión "apl", que será el que debe abrirse para editar posteriormente la aplicación si es necesario. Todos los archivos auxiliares (imágenes, sonidos...) que se recopilan son una copia de los originales, de modo que los originales podrán incluso borrarse y la aplicación seguirá funcionando. Si se modifica algún archivo recopilado es cuando la aplicación experimentará los cambios. Puesto que algún archivo pudiera borrarse por error, la aplicación buscará en primer lugar entre los archivos recopilados y si algo no encuentra, lo buscará en su ubicación original. Si tampoco lo encuentra, presentará la posibilidad de buscarlo manualmente.
La aplicación que estemos construyendo podemos ejecutarla para hacer pruebas (con un botón que se encuentra en la pestaña "Entorno de programación") y veremos el resultado en la ventana de simulación. Pero hay tres formas distintas de utilizar una aplicación: Como un programa, como un applet (un programa que se coloca en un documento html, es decir, en una página web) o como un componente más que se utilizará en otras aplicaciones. La siguiente imagen muestra un ejemplo con dos aplicaciones creadas en un directorio común y aparecen todos los archivos que se generan para ejecutar la aplicación como programa, como applet y como componente. De todos ellos, y dependiendo de cómo se quiera utilizar la aplicación, solo se necesitan algunos como a continuación se describirá, los demás podrán borrarse (o no haberlos creado).
El programa siempre se crea automáticamente cada vez que se guarda la aplicación, será un archivo con extensión "jar" que se podrá ejecutar con doble clic del ratón. En la aplicación A de la imagen anterior será "aplicacionA.jar" y necesita el archivo "aplicacionA.apl" para su funcionamiento. Este mismo archivo (aplicacionA.apl) es el que tendremos que abrir con AutoJava si en algún momento queremos hacer cambios. También serán necesarios los archivos recopilados, es decir, los recursos utilizados en la aplicación como imágenes y sonidos. Los archivos necesarios para ejecutar la aplicación A como programa se indican en la siguiente imagen:
El applet se crea solo con pulsar la opción "Generar applet", pero es necesario guardar la aplicación antes de pulsar esta opción, porque de lo contrario el applet no registrará los cambios que no se hayan guardado. Cuando se crea un applet con la aplicación abierta, éste se coloca automáticamente en un documento html básico, que contendrá solamente un título, un texto, un nombre de programa que presentará el navegador en su barra de estado y lógicamente, el código que abrirá el applet para mostrarlo en el navegador. El título, el texto y el nombre para el applet son solicitados nada más que se pulsa la opción para generar el applet y una vez introducidos y aceptados se crea el documento html y se informa de su ubicación, para poder abrirlo con doble clic del ratón, ponerlo en un servidor de internet, modificarlo, etc. Si se desea hacer cambios en el documento html, se puede optar por dos cosas: Editarlo con un procesador de texto sin formato (exige conocer un poco la programación en html) o editarlo con un editor de html como puede ser el Front Page de Microsoft (se colocan contenidos y crea automáticamente el código). No es dificil programar en html, pero tiene escasa flexibilidad y dinamismo, no tiene las características de un verdadero lenguaje de programación. Los applets son contenido activo (un programa) y como tal pueden ser bloqueados por el sistema si así se ha establecido en las opciones de seguridad del navegador. En la aplicación A de la imagen anterior vemos las dos versiones (ver siguiente punto). "aplicacionA.html" corresponde a la versión 1.3 y necesita para su ejecución los archivos "aplicacionA.txt", clases.zip y los archivos recopilados. "aplicacionA10.html" corresponde a la versión 1.0 y necesita para su ejecución los mismos archivos excepto clases.zip, en cuyo lugar utiliza "clases10.zip". En cuanto al archivo de extensión txt, es admisible cambiar la extensión "txt" por "zip". Esto se debe a determinados contratiempos que podemos encontrar para cargar nuestras páginas web en servidores de internet que prestan el servicio gratuítamente: Es posible que se compruebe la naturaleza de los archivos que sean cargados y como es de esperar que un archivo txt contenga texto, la carga pudiera ser rechazada si encuentra códigos que no se corresponden con texto. Si esto nos ocurriera, podemos optar por otro modo de carga o más sencillamente, cambiar txt por zip. La siguiente imagen muestra los archivos necesarios para ejecutar el applet de la aplicación A en las dos versiones:
El componente se crea solo con pulsar la opción "Generar componente" y se informa sobre la ubicación del archivo generado. Este archivo tendrá extensión "pgn" y podrá ser abierto en otras aplicaciones como componente. Por lo tanto, se tratará de una verdadera aplicación que se ejecutará dentro de otra. En la aplicación A de la imagen anterior, el componente que puede abrirse en otras aplicaciones es el archivo "aplicacionA.pgn". Cuando uno de estos archivos se abre, es posible que necesite archivos recopilados y serán buscados en la misma ruta en que se encuentre el archivo pgn. Si no fueran encontrados se hará la búsqueda en las ubicaciones originales y si aún no existieran se propondrá una búsqueda manual. La programación con AutoJava incluye opciones para dotar a estos componentes de unas vías de comunicación, de forma que no sean meros "convidados de piedra" en otras aplicaciones, sino que se integren activamente y se relacionen. Las relaciones que se podrán establecer con estos componentes dependen de su utilidad y por supuesto, de su programa. Por ejemplo, si diseñamos un trazador de funciones, deberíamos dotarlo de unas vías de entrada para dar valores a los parámetros que manejará y tal vez alguna vía de salida para informar sobre los resultados, como pudiera ser el máximo valor que alcance la función. Sin embargo, las vías de comunicación que contenga pueden ser utilizadas o no, o utilizar solo las que se necesiten. Un componente de estas características puede ser abierto en otra aplicación de dos formas posibles: Para ser ejecutado en una ventana propia o para ser ejecutado sin ventana (visible en la ventana de la aplicación en la que se abra) y en este último caso podrá tener un fondo propio o no tenerlo. Esta decisión se toma al abrir el componente, no depende de su programa. Como en el caso de crear un applet, antes de crear un componente debe haberse guardado la aplicación para que los cambios queden registrados.
LA VERSIÓN DEL APPLET.
En la pestaña "Archivo" se encuentra la opción "Simulación con JDK 1.0", que permite cambiar entre las dos versiones que se podrán simular (la 1.3 y la 1.0). Esta opción no tendrá efecto alguno si se utilizará la aplicación como un programa, ya que siempre funcionará con la 1.3. Sin embargo, cuando se utilice como applet habrá que pensar a quienes irá dirigido: Si pretendemos poner la página web en Internet para que cualquiera tenga acceso, es posible que muchos no puedan abrirlo porque su sistema no tenga Java actualizado, es decir, no podrán abrir su applet en versión 1.3 a menos que descarguen e instalen Java, pero sí abrirán su applet en versión 1.0 porque los navegadores ya tienen instalado por defecto la versión 1.0 de Java. AutoJava se ha programado intentando que casi todo lo que puede hacer, funcione también con versión 1.0 y así no tener que recurrir a la versión 1.3 y ser accesible a mayor número de visitantes aunque no tengan actualizado Java. Pero aún así existen algunas diferencias, como es el caso del antialias (difuminado que aminora el efecto de pixelado) o la rotación de imágenes. El cambio de versión en la simulación permitirá comprobar lo que se puede y no se puede hacer en la versión 1.0 y así decidir en qué versión distribuiremos nuestro applet.
Cuando se crea un applet con la aplicación abierta, no es necesario decidir sobre la versión, puesto que se generan las dos versiones (los dos documentos html), uno llamado igual que la aplicación (pero extensión html) que corresponde a la versión 1.3 y otro llamado igual que la aplicación pero añadiendo 10 al final del nombre (y extensión html, por supuesto). De los dos archivos, podrá borrarse el que no se quiera utilizar. El archivo html solo contiene la llamada al applet, pero no contiene el applet, por lo que habrá algún otro archivo que será necesario (imágenes, sonidos, etc.), entre los cuales estará el que contiene el código de ejecución del applet, que siempre será "clases.zip" para la versión 1.3 y "clases10.zip" para la versión 1.0. Por lo tanto, también se podrá borrar uno de ellos si se desea utilizar una sola versión.
QUÉ ES UN PROYECTO.
Un proyecto es un conjunto de varias aplicaciones que se han creado en el mismo directorio. Cualquiera de ellas puede ejecutar a las demás si así se ha previsto al programarla por medio de una llamada (especificando solo el nombre de la aplicación a ejecutar, sin ruta de búsqueda ni extensión), también puede ser abierta de forma independiente a las demás (con su propio archivo ejecutable). En el ejemplo ya visto, cuya imagen se reproduce de nuevo, podemos suponer el caso de haber programado en la aplicación A una llamada a la aplicación B, en cuyo caso la aplicación B podrá ser ejecutada desde la aplicación A o ejecutando "aplicacionB.jar". Si solo se desea su ejecución desde la aplicación A, podremos borrar "aplicacionB.jar".
Las aplicaciones de un mismo proyecto podrán compartir información a través de la memoria y a través del disco. Por ejemplo, una aplicación puede tener la función de almacenar y modificar datos y otra puede tener la tarea de trabajar con los datos que edita la anterior. Si en determinado momento no se necesita editar datos, la aplicación editora no es necesario que esté abierta y así no consumirá recursos del sistema. Algo similar se conseguiría con un componente con programa (un componente creado con otra aplicación) si éste se abre con ventana propia. La diferencia estaría en que el componente no tiene archivo ejecutable propio (se ejecuta desde la aplicación que lo contenga) y en que el componente puede tener vías de comunicación propias, que suelen ser más directas y fáciles de utilizar, pero se deben haber programado adecuadamente para ello y es menos apropiado si la cantidad de datos a compartir es grande, porque exigíria haber programado una vía de comunicación por cada dato a compartir. Si el componente no tiene ventana propia, estará presente contínuamente y consumiendo recursos, en mayor o menor grado dependiendo de su actividad.