A. Ejercicios

A.1. Entornos de desarrollo

1.1. Abrir la herramienta ktoolbar de WTK 1.0.4. Abrir desde ella alguna de las aplicaciones de ejemplo que tenemos disponibles (UIDemo, demos o games). Probar a compilar estas aplicaciones y ejecutarlas en distintos emuladores (creando el paquete en caso necesario). Observar las diferencias que encontramos de unos emuladores a otros.

1.2. Vamos a hacer nuestra primera aplicación "Hola mundo" en J2ME. Para ello debemos:

a) Crear un nuevo proyecto con WTK 1.0.4. El proyecto se llamará PruebaAplicacion y el MIDlet principal será es.ua.j2ee.prueba.MIDletPrueba.

b) Una vez creado abriremos el proyecto desde Eclipse, crearemos la clase del MIDlet principal, e introduciremos en ella el siguiente código:

package es.ua.j2ee.prueba;

import javax.microedition.midlet.*; import javax.microedition.lcdui.*;

public class MIDletPrueba extends MIDlet {

protected void startApp() throws MIDletStateChangeException { Form f = new Form("Hola mundo"); Display d = Display.getDisplay(this); d.setCurrent(f); }

protected void pauseApp() { }

protected void destroyApp(boolean incondicional)
throws MIDletStateChangeException { } }

c) Guardar el fichero y desde WTK compilar y ejecutar la aplicación en emuladores, comprobando que funciona correctamente.

1.3. Añadir un fichero build.xml al proyecto en Eclipse para poderlo compilar y ejecutar desde este mismo entorno. Compilar y ejecutar desde este entorno.

1.4. Vamos a añadir recursos a nuestra aplicación. Mostraremos una imagen en la pantalla, introduciendo el siguiente código en el método startApp de nuestro MIDlet:

protected void startApp() throws MIDletStateChangeException {
    Form f = new Form("Hola mundo");
    try {
        f.append(Image.createImage("/logo.png"));
    } catch(Exception e) {}
   
    Display d = Display.getDisplay(this);
    d.setCurrent(f);
}

Para poder mostrar esta imagen deberemos añadirla como recurso a la suite. Añadir una imagen con nombre logo.png al directorio de recursos.

Compilar y ejecutar la aplicación para comprobar que la imagen se muestra correctamente. Utilizar para ello tanto ktoolbar como la herramienta ant desde Eclipse.

1.5. Ahora añadiremos sonido a la aplicación. Para ello deberemos utilizar la API multimedia que es una API adicional. Deberemos:

a) Incorporar la librería MMAPI a nuestro proyecto en Eclipse. Podemos localizar esta librería dentro del directorio de los emuladores que soporten esta API (normalmente en el subdirectorio lib). Podremos obtenerla por ejemplo de los emuladores de la Serie 60 de Nokia, o del MMEmulator de Sun.

b) Una vez hecho esto podremos utilizar esta API multimedia en el editor de Eclipse sin que nos muestre errores en el código. Modificaremos el código del MIDlet de la siguiente forma:

package es.ua.j2ee.prueba;

import javax.microedition.midlet.*; import javax.microedition.lcdui.*; import javax.microedition.media.*;

public class MIDletPrueba extends MIDlet {

protected void startApp() throws MIDletStateChangeException { Form f = new Form("Hola mundo"); try { f.append(Image.createImage("/logo.png")); } catch(Exception e) {}

try { Manager.playTone(80, 1000, 100); } catch(MediaException e) {} Display d = Display.getDisplay(this); d.setCurrent(f); }

protected void pauseApp() { }

protected void destroyApp(boolean incondicional)
throws MIDletStateChangeException { } }

c) Guardar y compilar desde WTK. Compilar seleccionando distintos emuladores distintos. ¿Con cuáles funciona y con cuáles obtenemos errores de compilación? ¿Por qué?

d) Modificar ahora el fichero build.xml para que compile utilizando esta API multimedia. Comprobar que compila y ejecuta correctamente el ejemplo.

1.6. Crear un proyecto con NetBeans. Utilizar la plantilla HelloMIDlet para crear el MIDlet principal de nuestra suite. Compilar y ejecutar el proyecto desde este entorno. Depurar la aplicación estableciendo un breakpoint al comienzo del método startApp.