You are on page 1of 8

5.6. Programacin de telfonos mviles y PDA.

Un Midlet es una aplicacin diseada en java para ser ejecutada en un dispositivo


mvil del perfil MID (Movile Information Device). Es una clase que tiene que
hereda atributos de la clase abstracta MIDlet la cual se encuentra en el paquete
javax.microedition.midlet.
Estados de una aplicacin Midlet:
Activo
Pausado
Terminado o destruido
La clase Midlet posee tres mtodos abstractos que toda aplicacin debe
implementar, estos mtodos definen el ciclo de vida de un Midlet.

CICLO DE VIDA DE UN MIDLET


Pausado: Estado "en espera" pauseApp() en el que el MIDlet mantiene los
mnimos recursos posibles, entrando en l cuando se crea (antes de ejecutarse su
mtodo startApp()) o tras llamarlo desde el mtodo startApp().
Adems, la plataforma puede pasar el MIDlet a este estado si as lo estima
oportuno (por ejemplo, ante una llamada telefnica).

Activado: Estado de ejecucin del MIDlet al que se pasa tras ejecutar su mtodo
startApp(), tanto inicialmente o como despus de la recuperacin de una pausa.
Destruido: Los dos estados anteriores pueden pasar a ste y de l ya no se podr
salir. Es el estado donde el MIDlet concluye su actividad, pasando a l por medio
de la invocacin de su mtodo destroyApp() o, por ejemplo, ante alguna excepcin
que se produzca en el constructor del MIDlet.

Creacin de un MIDLET.
Para crear la primera aplicacin mvil se inicia el software Netbeans y se va a
Archivo / Proyecto Nuevo que brinda acceso a un asistente que permite
seleccionar el tipo de desarrollo a ser implementado, seleccionndose en este
caso JAVA ME / Mobile Application. Luego el asistente, permite seleccionar un
nombre para el proyecto, una ubicacin de almacenamiento y la posibilidad de
crear una aplicacin ejemplo llamada Hola Midlet. Seguidamente, aparece la
configuracin del dispositivo mvil de las funciones y libreras que soporta, si no se
tiene un dispositivo mvil especfico para el cual se va a hacer el desarrollo se
selecciona Device Configuration CLDC-1.1 y MIDP-2.0 que es el ms general y
abarca una gran cantidad de estos dispositivos. Cuando se hace clic en terminar,
es el fin del asistente y automticamente se crea una nueva carpeta dentro de Mis
Documentos llamada NetBeansProjects, ah van a ir guardados los proyectos
realizados en NetBeans.

SECCION DONDE SE REGISTRAN LOS PROYECTOS EN NETBEANS

NetBeans proporciona la posibilidad de desarrollar en modo cdigo, en modo


grfico o con un diagrama de flujos, es muy til porque se puede visualizar lo que
hay en pantalla o seleccionar la funcin de cada botn y arrastrarlo hacia otros
formularios creando as el diagrama o si se quiere construir funciones y clases
ms especficas creando desarrollos por cdigo.
Los diagrama de un MIDLET se puede modificar segn el diseo y los
requerimientos de la aplicacin, crear botones y muchas otras funciones de la
barra de herramientas paleta, como alertas, tablas, cajas de texto, funciones login,
compositor de SMS, botones, etc.

DIAGRAMA DE FLUJO DE UN MIDLET

PALETA DE COMPONENTE DE UN MIDLET

Cmo funciona un MIDlet?


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

Con estas dos lneas importamos las clase MIDlet, que es obligatoria para que
nuestro programa se ejecute en el dispositivo mvil, y tambin importamos (con la
segunda lnea) los elementos que vamos a utilizar el la interfaz de usuario.

public class HelloWorld extends MIDlet implements CommandListener {


private Command exitCommand;
private Display display;
private Form screen;

En la primera lnea declaramos la clase principal del programa, que es pblica.


Hereda de la clase MIDLet e implementa la interfaz CommandListener (en
concreto implementaremos el mtodo commandAction()). Tambin declaramos
una serie de variables que utilizaremos a continuacin.
public HelloWorld() {
// Obtenemos el objeto Display del midlet.
display = Display.getDisplay(this);

Este es el constructor de la clase. Observa que tiene el mismo nombre que la


clase
(maysculas y minsculas incluidas) y adems no tiene tipo de retorno, ni siquiera
void.Al ejecutarse un MIDlet, ste crea un objeto display, que es el encargado de
mostrar informacin en la pantalla. Para poder utilizarlo, tenemos que obtener una
referencia a este objeto. Esto es lo que hace precisamente la siguiente lnea
mediante el mtodo getDisplay() del objeto esttico Display.
// Creamos el comando Salir.
exitCommand = new Command("Salir", Command.EXIT,2);

Un comando es un elemento que nos permite interaccionar con el usuario y le


permite introducir comandos. Para crear un comando creamos una instancia (con
new) de la clase Command(). Como parmetro le pasamos el texto del comando,
el tipo de comando y la prioridad.
Disponemos de los siguientes tipos de comandos:

OK: Confirma una seleccin

CANCEL: Cancela la accin actual


BACK: Traslada al usuario a la pantalla anterior
STOP: Detiene una operacin
HELP: Muestra una ayuda
SCREEN: Tipo genrico para uso del programador referente a la pantalla actual.
ITEM: Tipo genrico para uso del programador referente a un elemento de la
pantalla actual
A veces, y dependiendo del modelo y marca del dispositivo, slo se pueden
mostrar un nmero limitados de comandos en la pantalla. Al resto se acceder
mediante un men. El tercer parmetro nos permite dar ms prioridad a unos
comandos que a otros a la hora de mostrarlos en la pantalla.

// Aadimos el comando Salir e indicamos que clase lo manejar


screen.addCommand(exitCommand);
screen.setCommandListener(this);

Nos resta aadir el comando (mediante el mtodo addCommand() del objeto


screen) a la lista de comandos y establecer que clase permanece a la escucha
de esos comandos utilizando la clase setCommandListener(). En este caso, el
mtodo encargado de procesar los comandos estn dentro de la propia clase
HelloWorld, por lo que utilizamos el operador this. Si quisiramos tener una clase
separada encargada de procesar los comandos, la indicaramos aqu. En
concreto, el mtodo que se encarga de procesar los comandos es
commandAction().
Para
eliminar
un
comando
podemos
utilizar
removeCommand(Command cmd).
public void commandAction(Command c, Displayable s) {
// Salir
if (c == exitCommand) {
destroyApp(false);
notifyDestroyed(); }
}

Cuando el usuario genera un comando, se llama al mtodo commandAction().


Este
mtodo recibir dos parmetros. El comando que se gener, y un objeto de la
clase
Displayable, que contiene la pantalla del comando.
Cerraremos la aplicacin con los mtodos destroyApp() y notifyDestroyed().

// Creamos la pantalla principal (un formulario)


screen = new Form("HelloWorld");
// Creamos y aadimos la cadena de texto a la pantalla
StringItem saludo = new StringItem("","Hola Mundo...");
screen.append(saludo);

Dentro de la pantalla podemos situar diversos elementos grficos. Vamos a crear


un objeto de tipo Form (formuario) como elemento principal de la pantalla.
Veremos dentro de este captulo cules son estos elementos. Seguidamente
creamos una cadena de texto (StringItem) y la aadimos a la pantalla principal
mediante el mtodo append().
public void startApp() throws MIDletStateChangeException {
// Seleccionamos la pantalla a mostrar
display.setCurrent(screen); }

Mediante el mtodo setCurrent() del objeto display (aquel del que obtuvimos la
referencia al principio del constructor) seleccionamos la pantalla actual para ser
mostrada. Lo hacemos en el mtodo startApp() que es el que se ejecuta en primer
lugar.

public void pauseApp() {}


public void destroyApp(boolean unconditional) {}

Estas dos lneas pueden parecer extraas, ya que son mtodos vacos (sin
cdigo). Como ya vimos, hay que implementar todas las clases heredadas de
MIDlet (pauseApp, destroyAppy startApp), por lo que, aunque no contengan
cdigo, hay que declararlas.

ANAHI GARCIA RAMIREZ: Los telfonos mviles son ya parte de nuestra vida
diaria. Cada da son ms necesarios para el uso de la vida cotidiana, ya que esta
nos permite comunicarnos desde cualquier lugar al igual que acceder a diferentes
redes sociales, al internet y al uso del correo electrnico de una forma mas
accesible sin necesidad de acudir a un sitio web para poder llevar a cabo estas
tipo de utilidades.
Asimismo la tecnologa en mviles ha visto la necesidad de actualizar, modernizar
y crear nuevas aplicaciones conforme a las necesidades de los diferentes tipos de
personas, esto nos da un amplio campo de aplicaciones y tambin muchas
posibilidades en las creaciones de diversos juegos para todo tipo de edades, por
ejemplo un servidor que almacene las puntuaciones mximas entre todos los
jugadores de un juego, o incluso la posibilidad de juego online contra otros
jugadores.

BIBLIOGRAFIA.
Programacin de juegos para mviles con J2ME
2003 Alberto Garca Serrano
Email: j2me @ agserrano .com
ISBN: 84-609-1927-7

You might also like