Introducción A La Plataforma J2me
Introducción A La Plataforma J2me
UNIDAD III
INTRODUCCIN A LA PLATAFORMA
J2ME
J2ME: Aplicaciones Java para Dispositivos Mviles
Master en JAVA
Introduccin
En la unidad anterior vimos los conceptos principales de la programacin. Esta
unidad explica como programar en el lenguaje JAVA.
ndice
3.1. Introduccin a Java
3.1.1. Estructura y caractersticas del lenguaje
3.1.2. Clases y objetos en Java
3.1.3. Control de errores y excepciones
3.1.4. Entrada / salida en Java
3.1.5. Diseo de clases propias
3.1.6. Clases fundamentales
3.1.7. Interfaces
3.2. J2ME: Arquitectura general
3.3. Origen
3.4. Principales caractersticas
3.5. Dispositivos mviles
3.5.1. Tipos de dispositivos
3.6. El entorno J2ME
3.6.1. JDK
3.6.2. Instalacin
3.7. Configuraciones y perfiles
3.8. Instalacin y uso del Wireless Toolkit de Sun
3.9. Aplicaciones bsicas en J2ME
3.9.1. La primer aplicacin para mviles
3.1.
Introduccin a Java
}
class Clase2 {
class ClaseN {
}
El cuerpo de las clases comienza con una llave abierta ({) y termina con una llave
cerrada (}).
Declaracin de clase {
Cuerpo de clase
}
La declaracin de una clase define un tipo de dato referencial. Dentro del cuerpo de
la clase se declaran los atributos de la clase y los mtodos.
Declaracin de clase
La declaracin mnima para una clase es la siguiente:
class NombreClase
Una declaracin de este tipo indica que la clase no desciende de ninguna otra,
aunque en realidad, todas las clases declaradas en un programa escrito en Java son
5
Una clase embebida (Inner Class) es una clase que se define dentro de otra. Es
una caracterstica de Java que permite agrupar clases lgicamente relacionadas y
controlar la 'visibilidad' de una clase. El uso de las clases embebidas no es obvio y
contienen detallas algo ms complejos que escapan del mbito de esta introduccin.
Se puede definir una clase embebida de la siguiente forma:
class Externa {
. . .
class Interna {
. . .
}
}
La clase Externa puede instanciar y usar la clase Interna como cualquier otra, sin
limitacin ni cambio en la sintaxis de acceso:
6
Object
Throwable
Error
LinkageError
Exception
IOException
AWTError
lanzada. Si por ejemplo se intentase capturar primero una excepcin Throwable, nunca
llegaramos a gestionar una excepcin Runtime, puesto que cualquier clase hija de
Runtime es tambin hija de Throwable, por herencia. Si no se ha lanzado ninguna
excepcin el cdigo contina sin ejecutar ninguna sentencia catch.Pero, y si quiero
realizar una accin comn a todas las opciones?.
Para insertar fragmentos de cdigo que se ejecuten tras la gestin de las
excepciones. Este cdigo se ejecutar tanto si se ha tratado una excepcin (catch) como
sino. Este tipo de cdigo se inserta en una sentencia finally, que ser ejecutada tras el
bloque try o catch:
10
11
12
Conclusiones:
13
14
Math
La clase Math representa la librera matemtica de Java. Las funciones que
contiene son las de todos los lenguajes, parece que se han metido en una clase
solamente a propsito de agrupacin, por eso se encapsulan en Math, y lo mismo sucede
con las dems clases que corresponden a objetos que tienen un tipo equivalente
(Character, Float, etc.). El constructor de la clase es privado, por los que no se pueden
crear instancias de la clase. Sin embargo, Math es public para que se pueda llamar desde
cualquier sitio y static para que no haya que inicializarla.
El ejemplo javam1.java, muestra la utilizacin de algunas de las funciones de la
clase Math:
class javam1 {
public static void main( String args[] ) {
int x;
double rand,y,z;
float max;
rand = Math.random();
x = Math.abs( -123 );
y = Math.round( 123.567 );
z = Math.pow( 2,4 );
max = Math.max( (float)1e10,(float)3e9 );
System.out.println(
System.out.println(
System.out.println(
System.out.println(
System.out.println(
rand );
x );
y );
z );
max );
Integer
Cada tipo numrico tiene su propia clase de objetos. As el tipo int tiene el objeto
Integer. De la misma forma que con la clase Character, se han codificado muchas
funciones tiles dentro de los mtodos de la clase Integer.
Declaraciones
La primera sentencia crear una variable int y la segunda un objeto Integer:
int i;
Integer I;
Valores de Integer
Integer.MIN_VALUE;
Integer.MAX_VALUE;
16
Mtodos de Integer
String Integer.toString( int i,int base );
String Integer.toString( int i );
int I.parseInt( String s,int base );
int I.parseInt( String s );
Integer Integer.valueOf( String s,int base );
Integer Integer.valueOf( String s );
int I.intValue();
long I.longValue();
float I.floatValue();
double I.doubleValue();
String I.toString();
int I.hashCode();
boolean I.equals( Object obj );
para crear un conjunto de clases que proporcionen una sensacin visual agradable y sean
ms fciles de utilizar por el programador. Esta coleccin de clases son las Java
Foundation Classes (JFC), que estn constituidas por cinco grupos de clases, al menos
en este momento: AWT, Java 2D, Accesibilidad, Arrastrar y Soltar y Swing.
AWT, engloba a todos los componentes del AWT que existan en la versin 1.1.2
del JDK y en los que se han incorporado en versiones posteriores:
Java 2D es un conjunto de clases grficas bajo licencia de IBM/Taligent, que
todava est en construccin
Accesibilidad, proporciona clases para facilitar el uso de ordenadores y tecnologa
informtica a disminuidos, como lupas de pantalla, y cosas as
Arrastrar y Soltar (Drag and Drop), son clases en las que se soporta Glasgow,
que es la nueva generacin de los JavaBeans
Swing, es la parte ms importante y la que ms desarrollada se encuentra. Ha sido
creada en conjuncin con Netscape y proporciona una serie de componentes muy
bien descritos y especificados de forma que su presentacin visual es
independiente de la plataforma en que se ejecute el applet o la aplicacin que
utilice estas clases. Swing simplemente extiende el AWT aadiendo un conjunto
de componentes, JComponents, y sus clases de soporte. Hay un conjunto de
componentes de Swing que son anlogos a los de AWT, y algunos de ellos
participan de la arquitectura MVC (Modelo-Vista-Controlador), aunque Swing
tambin proporciona otros widgets nuevos como rboles, pestaas, etc.
La estructura bsica del AWT se basa en Componentes y Contenedores. Estos
ltimos contienen Componentes posicionados a su respecto y son Componentes a su vez,
de forma que los eventos pueden tratarse tanto en Contenedores como en Componentes,
corriendo por cuenta del programador (todava no hay herramientas de composicin
visual) el encaje de todas las piezas, as como la seguridad de tratamiento de los eventos
adecuados. Con Swing se va un paso ms all, ya que todos los JComponentes son
subclases de Container, lo que hace posible que widgets Swing puedan contener otros
componentes, tanto de AWT como de Swing, lo que hace prever interesantes
posibilidades.
A continuacin se aborda la programacin con el AWT fundamentalmente para
tener la base suficiente y poder seguir profundizando en las dems caractersticas del
lenguaje Java, aunque tambin se presentarn ejemplos de utilizacin de JComponentes
cuando Swing tenga implementado alguno que corresponda el del AWT o derivado de l.
Interfaz de Usuario
El interfaz de usuario es la parte del programa que permite a ste interactuar con el
usuario. Las interfaces de usuario pueden adoptar muchas formas, que van desde la
simple lnea de comandos hasta las interfaces grficas que proporcionan las aplicaciones
ms modernas.
18
El paso de AWT a Swing es muy sencillo y no hay que descartar nada de lo que se
haya hecho con el AWT. Afortunadamente, los programadores de Swing han tenido
compasin y, en la mayora de los casos es suficiente con aadir una "J" al componente
AWT para que se convierta en un componente Swing.
Es muy importante entender y asimilar el hecho de que Swing es una extensin del
AWT, y no un sustituto encaminado a reemplazarlo. Aunque esto sea verdad en algunos
casos en que los componentes de Swing se corresponden a componentes del AWT; por
ejemplo, el JButton de Swing puede considerarse como un sustituto del Button del AWT,
y una vez que se usen los botones de Swing se puede tomar la decisin de no volver a
utilizar jams un botn de AWT, pero, la funcionalidad bsica de Swing descansa sobre el
AWT. Todo esto es para evitar que el lector salte directamente a Swing, ya que sera
conveniente que primero entendiese el AWT y cmo Swing mejora al AWT.
Para iniciar la entrada en Swing, qu mejor que implementar de nuevo otra versin
del saludo inicial, pero con los componentes Swing, as que la versin del "Hola Mundo!",
se convierte ahora en JHolaMundo.java, cuyo cdigo es el que sigue.
import com.sun.java.swing.*;
public class JHolaMundo extends JFrame {
public static void main( String argv[] ) {
new JHolaMundo();
}
JHolaMundo() {
JLabel hola = new JLabel( "Hola Mundo!" );
getContentPane().add( hola,"Center" );
setSize( 200,100);
setVisible( true );
}
}
3.2.
3.2.1. Origen
En 1999 fue presentada la edicin Java 2 Micro Edition por Sun Microsystems con
el propsito de habilitar aplicaciones Java para pequeos dispositivos. Se present una
primera versin que poda ejecutarse en dispositivos Palm.
Para empezar podemos decir que Java Micro Edition es la versin del lenguaje
Java que est orientada al desarrollo de aplicaciones para dispositivos pequeos con
capacidades restringidas tanto en pantalla grfica, como de procesamiento y memoria
(telfonos mviles, PDA`s, Handhelds, Pagers, etc). La tarda aparicin de esta
tecnologa, (hemos visto que la tecnologa Java naci a mediados de los 90 y Java Micro
Edition apareci a finales), puede ser debido a que las necesidades de los usuarios de
telefona mvil ha cambiado mucho en estos ltimos aos y cada vez demandan ms
20
servicios y prestaciones por parte tanto de los terminales como de las compaas.
Adems el uso de esta tecnologa depende del asentamiento en el mercado de otras,
como GPRS, ntimamente asociada a J2ME y que no ha estado a nuestro alcance hasta
hace poco.
J2ME es la tecnologa del futuro para la industria de los dispositivos mviles.
Actualmente las compaas telefnicas y los fabricantes de mviles estn implantando los
protocolos y dispositivos necesarios para soportarla.
Usaremos emuladores dnde podremos ejecutar y depurar nuestros programas,
evitando as la descarga insatisfactoria de nuestra aplicacin en un verdadero terminal.
Antes de comenzar con los conceptos necesarios de Java Micro Edition vamos a realizar
un estudio de las distintas versiones de Java.
21
J2SE
J2ME
23
Pequea, con una carga de memoria entre los 40Kb y los 80 Kb, dependiendo de
la plataforma y las opciones de compilacin.
Alta portabilidad.
Modulable.
Lo ms completa y rpida posible y sin sacrificar caractersticas para las que fue
diseada.
Sin embargo, esta baja ocupacin de memoria hace que posea algunas limitaciones
con respecto a la clsica Java Virtual Machine (JVM):
No hay soporte para tipos en coma flotante. No existen por tanto los tipos double ni
float. Esta limitacin est presente porque los dispositivos carecen del hardware
necesario para estas operaciones.
No existe soporte para JNI (Java Native Interface) debido a los recursos limitados
de memoria.
No existen cargadores de clases (class loaders) definidos por el usuario. Slo
existen los predefinidos.
No se permiten los grupos de hilos o hilos daemon. Cundo queramos utilizar
grupos de hilos utilizaremos los objetos Coleccin para almacenar cada hilo en el
mbito de la aplicacin.
No existe la finalizacin de instancias de clases. No existe el mtodo
Object.finalize().
No hay referencias dbiles.1
Limitada capacidad para el manejo de excepciones debido a que el manejo de
stas depende en gran parte de las APIs de cada dispositivo por lo que son stos
los que controlan la mayora de las excepciones.
Aparte de la no inclusin de estas caractersticas, la verificacin de clases merece un
comentario aparte. El verificador de clases estndar de Java es demasiado grande para la
KVM. De hecho es ms grande que la propia KVM y el consumo de memoria es excesivo,
ms de 100Kb para las aplicaciones tpicas. Este verificador de clases es el encargado de
rechazar las clases no vlidas en tiempo de ejecucin. Este mecanismo verifica los
bytecodes de las clases Java realizando las siguientes comprobaciones:
Ver que el cdigo no sobrepase los lmites de la pila de la VM.
Comprobar que no se utilizan las variables locales antes de ser inicializadas.
Comprobar que se respetan los campos, mtodos y los modificadores de control de
acceso a clases.
24
Por esta razn los dispositivos que usen la configuracin CLDC y KVM introducen
un algoritmo de verificacin de clases en dos pasos. Este proceso puede apreciarse
grficamente en la Figura 1.4.
La KVM puede ser compilada y probada en 3 plataformas distintas:
1. Solaris Operating Environment.
2. Windows
3. PalmOs
CVM
La CVM (Compact Virtual Machine) ha sido tomada como Mquina Virtual Java de
referencia para la configuracin CDC y soporta las mismas caractersticas que la Mquina
Virtual de J2SE. Est orientada a dispositivos electrnicos con procesadores de 32 bits de
gama alta y 2Mb o ms de memoria RAM. Las caractersticas que presenta esta Mquina
Virtual son:
Sistema de memoria avanzado.
Tiempo de espera bajo para el recolector de basura.
Separacin completa de la VM del sistema de memoria.
Recolector de basura modularizado.
Portabilidad.
Rpida sincronizacin.
Ejecucin de las clases Java fuera de la memoria de slo lectura (ROM).
Soporte nativo de hilos.
Baja ocupacin en memoria de las clases.
Proporciona soporte e interfaces para servicios en Sistemas Operativos de
Tiempo Real.
Conversin de hilos Java a hilos nativos.
25
conectado a otros sistemas. Si el PDA es capaz de conectarse a una red para obtener
datos "en medio de la calle", entonces tambin ser wireless.
Algunas de las caractersticas que hacen que estos dispositivos sean diferentes de
los ordenadores de sobremesa son los siguientes:
Funcionalidad limitada.
No necesariamente extensible y actualizable.
En pocos aos el usuario deber cambiarlo.
Ms barato.
Menos complicado en su manejo.
Fcil de aprender su operacin.
No se requieren usuarios expertos.
Algunos de estos dispositivos son los siguientes:
Paginadores.
Comunicadores de bolsillo.
Telfonos con pantalla para Internet (Internet Screen Phones).
Sistemas de navegacin de automviles.
Sistemas de entretenimiento.
Sistemas de televisin e Internet (WebTV).
Telfonos mviles.
Organizadores y asistentes personales digitales (Personal Digital Assistant ).
Veamos a continuacin de una forma ms detallada los dispositivos que
mayormente trataremos en este curso: el telfono mvil y el PDA.
Los telfonos mviles son de los aparatos sofisticados que encontramos en nuestro
cotidiano quehacer. Para comprimir y descomprimir seales digitales codificadas, tienen
que procesar millones de clculos por segundo. No obstante, se componen de apenas
algunos componentes. Son estos:
Un micrfono microscpico.
Un altavoz.
Una pantalla de cristale lquido o plasma.
Un teclado.
Una antena.
Una batera.
Una placa de circuitos.
27
3.4.1 . JDK
Vamos a ver las herramientas que se necesitan para construir nuestros MIDlets. El
proceso de creacin de stos se puede realizar bsicamente de dos formas:
A travs de la lnea de comandos: en este caso no haremos uso de ninguna
herramienta especial para el desarrollo de nuestra aplicacin.
A travs de un entorno visual: el uso de este tipo de herramientas nos facilitar
mucho, como veremos, el proceso de desarrollo de los MIDlets.
Los MIDlets que vamos a crear sern ejecutados en dispositivos MID (Mobile
Information Device) y no en la mquina donde los desarrollamos. Por esta razn, sea cual
sea el mtodo de creacin que usemos, tendremos que hacer uso de algn emulador
para realizar las pruebas de nuestra aplicacin.
Este emulador puede representar a un dispositivo genrico o puede ser de algn modelo
de MID especfico. El uso de estos emuladores ya lo veremos ms adelante.
Antes de empezar a explicar los pasos a seguir para instalar las herramientas
necesarias que usaremos para la construccin de los MIDlets, vamos a ver las etapas
bsicas que han de realizarse con este objetivo:
1. Desarrollo: En esta fase vamos a escribir el cdigo que conforma nuestro MIDlet.
2. Compilacin: Se compilar nuestra aplicacin haciendo uso de un compilador
J2SE.
3. Preverificacin: Antes de empaquetar nuestro MIDlet es necesario realizar un
proceso de preverificacin de las clases Java. En esta fase se realiza un examen
del cdigo del MIDlet para ver que no viola ninguna restriccin de seguridad de la
plataforma J2ME.
4. Empaquetamiento: En esta fase crearemos un archivo JAR que contiene los
recursos que usa nuestra aplicacin, y crearemos tambin un archivo descriptor
JAD.
5. Ejecucin: Para esta fase haremos uso de los emuladores que nos permitirn
ejecutar nuestro MIDlet.
6. Depuracin: Esta ltima fase nos permitir depurar los fallos detectados en la
fase anterior de nuestro MIDlet.
3.4.2 Instalacin
Las herramientas que vamos a usar para el desarrollo de MIDlets sern las siguientes:
31
Un editor de texto cualquiera como, por ejemplo, el Bloc de Notas o vid para
escribir el cdigo del MIDlet.
Un compilador estndar de Java. Haremos uso del SDK de J2SE que puede ser
descargado desde la direccin http://java.sun.com/j2se/1.4.1/download.html
Las APIs de la configuracin CLDC y del perfil MIDP que pueden ser descargadas
desde http://java.sun.com/j2me/download.html.
Lo primero que haremos ser instalar el SDK de J2SE. Una vez descargado el archivo
solo tendremos que hacer doble click sobre l e instalarlo en una carpeta en nuestro disco
duro (p.e. c:\jdk1.4.1). Una vez instalado aadiremos a nuestro path la carpeta anterior.
Para ello modificaremos la variable de entorno path a la que le aadiremos la carpeta
c:\jdk1.4.1\bin y crearemos una nueva variable de entorno llamada JAVA_HOME con el
valor c:\jdk1.4.1.
A continuacin instalaremos las APIs de CLDC y de MIDP. Con descargarnos las APIs
del perfil MIDP tenemos suficiente. Para ello solo tendremos que descomprimir el archivo
.zip descargado anteriormente en el lugar que deseemos (p.e. c:\midp2.0fcs). Al igual que
hicimos con anterioridad tendremos que aadir la direccin c:\midp2.0fcs\bin a la variable
path y adems tendremos que crear una nueva variable de entorno MIDP_HOME con el
valor c:\midp2.0fcs.
Para comprobar que hemos realizado correctamente la instalacin nos iremos a la
lnea de comandos y escribiremos lo siguiente:
java version
A continuacin escribiremos: midp versin
3.5 Configuraciones y perfiles
Configuraciones
Ya hemos mencionado algo anteriormente relacionado con las configuraciones. Para
tenerlo bien claro diremos que una configuracin es el conjunto mnimo de APIs Java que
permiten desarrollar aplicaciones para un grupo de dispositivos. stas APIs describen las
caractersticas bsicas, comunes a todos los dispositivos:
Caractersticas soportadas del lenguaje de programacin Java.
Caractersticas soportadas por la Mquina Virtual Java.
Bibliotecas bsicas de Java y APIs soportadas.
Como ya hemos visto con anterioridad, existen dos configuraciones en J2ME:
CLDC, orientada a dispositivos con limitaciones computacionales y de memoria y CDC,
orientada a dispositivos que no tienen tantas limitaciones como los CLDC. Ahora veremos
un poco ms en profundidad cada una de estas configuraciones.
32
Descripcin
Clases e interfaces estndar de E/S.
Clases bsicas del lenguaje.
Clases de referencia.
Clases e interfaces de red.
Clases e interfaces de reflection
Paquete de matemticas
Clases e interfaces de seguridad
Clases de certificados de seguridad
Paquete de texto
Clases de utilidades estndar
Clases e interfaces para conexin genrica CDC.
Descripcin
Clases y paquetes estndar de E/S. Subconjunto de J2SE.
Clases e interfaces de la Mquina Virtual. Subconj. de J2SE.
Clases, interfaces y utilidades estndar. Subconj. de J2SE.
Clases e interfaces de conexin genrica CLDC
Un perfil puede ser construido sobre cualquier otro. Sin embargo, una plataforma
J2ME slo puede contener una configuracin.
A continuacin vamos a ver con detenimiento cada uno de estos perfiles:
Foundation Profile: Este perfil define una serie de APIs sobre la CDC orientadas a
dispositivos que carecen de interfaz grfica como, por ejemplo, decodificadores de
35
televisin digital. Este perfil incluye gran parte de los paquetes de la J2SE, pero excluye
totalmente los paquetes java.awt Abstract Windows Toolkit (AWT) y java.swing que
conforman la interfaz grfica de usuario (GUI) de J2SE. Si una aplicacin requiriera una
GUI, entonces sera necesario un perfil adicional. Los paquetes que forman parte del
Foundation Profile se muestran en la Tabla 1.3.
Paquete del Foundation Profile
Descripcin
java.lang
Soporte del lenguaje Java
java.util
java.net
java.io
java.text
java.security
RMI Pro ile: Este perfil requiere una implementacin del Foundation Profile se construye
encima de l. El perfil RMI soporta un subconjunto de las APIs J2SE v1.3 RMI. Algunas
caractersticas de estas APIs se han eliminado del perfil RMI debido a las limitaciones de
cmputo y memoria de los dispositivos. Las siguientes propiedades se han eliminado del
J2SE RMI v1.3:
Java.rmi.server.disableHTTP.
Java.rmi.activation.port.
36
Java.rmi.loader.packagePrefix.
Java.rmi.registry.packagePrefix.
Java.rmi.server.packagePrefix.
PDA Profile: El PDA Profile est construido sobre CLDC. Pretende abarcar PDAs de
gama baja, tipo Palm, con una pantalla y algn tipo de puntero (ratn o lpiz) y una
resolucin de al menos 20000 pixels (al menos 200x100 pixels) con un factor 2:1. No es
posible dar mucha ms informacin porque en este momento este perfil se encuentra en
fase de definicin.
Mobile Information Device Profile (MIDP): Este perfil est construido sobre la
configuracin CLDC. Al igual que CLDC fue la primera configuracin definida para J2ME,
MIDP fue el primer perfil definido para esta plataforma. Este perfil est orientado para
dispositivos con las siguientes caractersticas:
Reducida capacidad computacional y de memoria.
Conectividad limitada (en torno a 9600 bps).
Capacidad grfica muy reducida (mnimo un display de 96x54 pixels
monocromo).
Entrada de datos alfanumrica reducida.
128 Kb de memoria no voltil para componentes MIDP.
8 Kb de memoria no voltil para datos persistentes de aplicaciones.
32 Kb de memoria voltil en tiempo de ejecucin para la pila Java.
Los tipos de dispositivos que se adaptan a estas caractersticas son: telfonos
mviles, buscapersonas (pagers) o PDAs de gama baja con conectividad.
El perfil MIDP establece las capacidades del dispositivo, por lo tanto, especifica las APIs
relacionadas con:
La aplicacin (semntica y control de la aplicacin MIDP).
Interfaz de usuario.
Almacenamiento persistente.
Trabajo en red.
Temporizadores.
Paquetes del MIDP
javax.microedition.lcdui
javax.microedition.rms
javax.microedition.midlet
javax.microedition.io
java.io
java.lang
Descripcin
Clases e interfaces para GUIs
Record Management Storage. Soporte para el
almacenamiento persistente del dispositivo
Clases de definicin de la aplicacin
Clases e interfaces de conexin genrica
Clases e interfaces de E/S bsica
Clases e interfaces de la Mquina Virtual
Las aplicaciones que realizamos utilizando MIDP reciben el nombre de MIDlets (por
simpata con APPlets). Decimos as que un MIDlet es una aplicacin Java realizada
con el perfil MIDP sobre la configuracin CLDC. En los temas siguientes nos
37
38
Una vez situados los archivos en los subdirectorios correspondientes tan slo
tendremos que compilar nuestro proyecto y ejecutarlo sobre el emulador.
Una vez que hayamos hecho todas las pruebas necesarias con nuestro MIDlet,
esta herramienta tambin nos da la posibilidad de empaquetar nuestro MIDlet y dejarlo de
esta manera, preparado para la descarga en un dispositivo real.
Vamos a crear un nuevo proyecto, as que pulsamos el botn New Project. Nos solicitar
un nombre para el proyecto y otro para la clase principal de la aplicacin.
40
Cada una de las carpetas creadas tiene una misin concreta. Por ahora nos bastar saber
que nuestros archivos fuente irn emplazados en el directorio src, y los recursos
necesarios como grficos, sonidos, etc... se alojarn en el directorio res.
A diferencia de otros entornos de programacin, KToolBar no cuenta con un editor
integrado para editar los programas, por lo tanto vamos a utilizar uno externo. Puedes
utilizar el bloc de notas de Windows o tu editor favorito.
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class HelloWorld extends MIDlet implements CommandListener {
private Command exitCommand;
private Display display;
private Form screen;
public HelloWorld() {
// Obtenemos el objeto Display del midlet.
display = Display.getDisplay(this);
// Creamos el comando Salir.
exitCommand = new Command("Salir", Command.EXIT,2);
// 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 comova ?...");
screen.append(saludo);
41
Importante:
Busque informacin general sobre la plataforma J2ME en internet o
libros, para reforzar los contenidos estudiados hasta el momento.
43