PDF de programación - J2ME Programando un cronómetro para nuestro celular

Imágen de pdf J2ME Programando un cronómetro para nuestro celular

J2ME Programando un cronómetro para nuestro celulargráfica de visualizaciones

Actualizado el 26 de Octubre del 2020 (Publicado el 7 de Mayo del 2017)
2.009 visualizaciones desde el 7 de Mayo del 2017
408,2 KB
9 paginas
Creado hace 15a (15/01/2009)
J2ME ­ Programando un cronómetro para nuestro celular

A lo largo de este apunte veremos como desarrollar  una aplicación que sea capaz de correr en un teléfono 
celular (MIDlet). Para ello haremos uso del entorno de desarrollo que Sun Microsystem dispone para 
programar en  dispositivos de bajos recursos: J2ME, hoy llamado JME y el IDE NetBeans 6.5.

¿Qué es J2ME?

J2ME (Java 2 Micro Edition) es un subconjunto del popular lenguaje Java, más precisamente de J2SE 
(Java 2 Standar Edition). Este subconjunto fue adaptado y contiene nuevas funcionalidades para permitir  el 
desarrollo de aplicaciones destinadas a dispositivos electrónicos con escasos recursos de memoria, proceso 
y display.

Las características mas sobresalientes de J2ME son:

● Inspirado en C++.
● Es completamente orientado a objetos.
● Es multiplataforma, genera bytecodes que serán interpretados independientemente del celular por 

una JVM (Java Virtual Machine).

● Es software libre. 

Arquitectura del entorno de ejecución de J2ME.

Se suele asociar a J2ME con la programación de celulares, sin embargo J2ME apunta a todos aquellos 

dispositivos que no cumplan con los requisitos necesarios para correr la máquina virtual de J2SE. 

J2ME dispone de dos configuraciones. Cada fabricante de dispositivos que desea soportar J2ME  debe 
decidir   que   configuración   implementará,   dependiendo   de   las   características   de   su   producto.   Las   dos 
configuraciones de J2ME son CDC y CLDC.

Una configuración  es el conjunto mínimo de APIs que permiten desarrollar aplicaciones para un grupo 
de   dispositivos.   Por   ejemplo   la   configuración   CLDC   (Connected   Limited   Device   Configuration)   está 
enfocada a dispositivos con limitaciones en procesamiento, memoria y pantalla como ser celulares, pagers, 
PDAs o agendas electrónicas; mientras que la configuración CDC se enfoca a dispositivos con mayores 
recursos que poseen procesadores de 32 bits, y más de 2MB de memoria, en esta configuración trabajan los 
decodificadores de TV digital, palms, televisores con internet y electrodomésticos inteligentes.

Como verán, la configuración que implementan los celulares es CLDC. Cada configuración tiene su 
propia máquina virtual encargada de correr las aplicaciones. La máquina virtual de la configuración CLDC 
es la KVM (Kilo Virtual Machine), cuyas características son las siguientes:

La KVM es la máquina virtual mas pequeña desarrollada por Sun Microsytem.

● Ocupa entre 40Kb y 80Kb. 
● No soporta punto flotante.
● Escrita en lenguaje C.
● Posee alta portabilidad.

Por último, la arquitectura de J2ME, puntualmente la configuración CLDC, que es la que nos interesa, se 

bifurca en 2 perfiles: PDA Profile y MID Profile.

Un perfil es un conjunto de APIs orientado a un ámbito de aplicación determinado. El perfil estipula las 
librerías necesarias para implementar una aplicación en una clase abstracta de dispositivos, como por 
ejemplo en teléfonos celulares. Los perfiles engloban un grupo de dispositivos según la funcionalidad que 
proporcionan. Para teléfonos celulares existe un único perfil llamado MIDP (Mobile Information Device 
Profile). MIDP nos provee las clases y funciones necesarias para que el usuario ejecute una aplicación en el 
celular.

A continuación podemos apreciar gráficamente la arquitectura de ejecución de J2ME:

Para que quede mas clara la diferencia entre un perfil y una configuración podemos decir que una 
configuración implica la máquina virtual a implementar y las librerías disponibles para una familia de 
dispositivos con características en común, como pagers, PDAs o celulares, mientras que un perfil establece 
las APIs que se utilizarán para programar en un tipo de  dispositivo genérico, por ejemplo, en un teléfono 
celular. Es por ello que debemos tener en claro que configuración usar y que perfil. En nuestro caso la 
configuración será CLDC y el perfil MIDP.

Creación del MIDlet a través de NetBeans 6.5

Bueno mucha teoría, seguro quieren ver de que trata el código, paciencia, ya arrancamos. Vimos ya que 
un Midlet es un programa capaz de correr en un teléfono celular. Así como a las aplicaciones Java que 
corren en un navegador web se las llama Applets y a las que se ejecutan en un servidor Servlets, a las que 
se ejecutan utilizando el perfil MIDP se las denominan MIDlets.

Para crear nuestro cronómetro debemos disponer del siguiente software:

● Java SE Runtime Environment (JRE) 6 Update 11
● Java SE Development Kit (JDK) 6 Update 11 
● NetBeans IDE 6.5 con plugin JME

Todos el software está disponible gratuitamente en la web de Sun www.sun.com. 

Los dos IDEs más populares que soportan J2ME son Eclipse y NetBeans. Para la construcción de la 
aplicación que propongo en este artículo opte por NetBeans, dicho sea de paso, NetBeans ha cumplido 10 
años en octubre de 2008, lo cual se refleja en la pantalla de bienvenida de la versión 6.5. 

Punto de partida

Iniciamos NetBeans y vamos al menú Proyecto Nuevo, en la ventana, que se muestra a continuación, 

seleccionamos en categorías, J2ME y en Proyectos, Mobile Application:

A continuación nos pedirá el nombre del proyecto, ponemos aquí MIDletCronometro y quitamos el tilde 
en Create Hello MIDlet para evitar que nuestro MIDlet ya arranque con la programación básica del típico 
“Hola   Mundo”.   Llegamos   ahora   al   punto   en   que   tenemos   que   seleccionar   la   versión   tanto   de   la 
configuración como del perfil, también es posible seleccionar un emulador de celular para probar la 
aplicación. Como mi celular trabaja con la configuración CLDC 1.0  y el perfil MIDP 2.0 son estos los 
parámetros que selecciono. Clic en siguiente, clic en terminar y por fin estamos listos para teclear código.

La programación J2ME es orientada a objetos, escapa del alcance de este artículo explicar que es una 
clase, un objeto, un método, una instancia, un constructor y herencia de clases. Si no comprenden estos 
términos les aconsejo que investiguen antes de continuar con la lectura de este artículo.

Es momento ahora de crear una clase cuyo nombre debe ser el mismo del proyecto y debe heredar de la 
clase MIDlet. Para crear esta clase nos dirigimos a la ventana Proyectos y seleccionamos Nueva Clase Java 
desde el  menú contextual de Source Packages, <paquete predeterminado>. La captura siguiente refleja lo 
dicho anteriormente:

Antes de continuar, es importante no olvidar configurar las propiedades del MIDlet para que la clase de 
inicio sea la recién creada, si no lo hacemos nuestra clase nunca se instanciará. Para ello vamos al menú 
Archivo  →  Project   Properties,   para   luego   dirigirnos   a   la   categoría   Application   Descriptor,   y,   previa 
selección de la solapa MIDlet,   pulsamos sobre el botón Add para seleccionar nuestra única clase. Asi 
debería quedarnos:

Volvemos a la ventana de código que ya contiene la definición de la clase MiDletCronometro. Es 
momento ahora de importar a nuestro proyecto las clases necesarias para, en primer lugar, implementar un 
MIDlet, y en segundo lugar,   diseñar la interfaz gráfica de alto nivel. También indicaremos que nuestro 
MIDlet hereda de la clase MIDlet, y será nuestra clase MIDletCronometro quien manejará los eventos que 
disparen cada uno de lo botones de comandos que próximamente incorporaremos. El código entonces inicia 
así:

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

public class MIDletCronometro extends MIDlet implements CommandListener {

}

Una clase que hereda de la clase MIDlet estará  en uno de tres estados: Activo, Pausado o Destruido.  Es 
necesario implementar estos métodos aún si no contienen programación, lo hacemos en el interior de la 
clase MIDletCronometro (dentro de las llaves):

public void startApp(){

}

public void pauseApp(){

}

public void destroyApp(boolean unconditional){

}

Bien, seguramente el IDE debe estar resaltando lineas a lo loco, esto es normal, ya que queda mucho por 
programar y el código está incompleto, de a poco los errores irán desapareciendo a medida que ingresemos 
programación, paciencia.

Vamos ahora a definir los objetos de nuestra clase. Pensemos entonces que objetos necesitamos para 

implementar nuestro cronómetro:

● Un objeto Display, que tendrá una referencia al display o pantalla del celular donde correrá la 

aplicación.

● Un objeto Form, que será el formulario que visualizaremos en la pantalla. Sobre este formulario 

incorporaremos el resto de los objetos que menciono a continuación.

● 4 objetos Command (botones para desencadenar procesos), uno para iniciar el cronómetro, otro para 

salir del programa, otro para detener el cronómetro y otro para reiniciarlo.

● Un objeto TextField que será en donde se visualizará el tiempo transcurrido.
● Un objeto Cronometro, que no existe en java y lo debemos crear nosotros. Por ahora pensemos que 
un objeto cronómetro debe ser capaz de iniciar el conteo, detenerlo y mostrar el tiempo transcurrido 
en algún otro objeto. 

Estos objetos los declaramos como privados de nuestra clase y los instanciamos desde el constructor de 

la misma:

public class MIDletCronometro extends MIDlet implements CommandListener {
private Form formulario;
private Display pantalla;
private Command cmdIniciar;
private Command cmdSalir;
private Command cmdParar;
private Command cmdReiniciar;
private TextField txtVisor;
private Cronometro cronometro;

public MIDletCronometro(){
pantalla=Display.getDisplay(this);
formulario=new Form("Cronómetro");
cmdIniciar=new Command("Iniciar",Command.OK,0);
cmdSalir=new Command("Salir",Command.EXIT,1);
cmdParar=new Command("Parar",Command.STOP,0);
cmdReiniciar=new Command("Reiniciar",Command.OK,1);
txtVisor=new TextField("Cronómetro","00:00:00:00",15,TextField.ANY);
formulario.addCommand(cmdSalir);
formulario.addCommand(cmdIniciar);
formulario.setCommandListener
  • Links de descarga
http://lwp-l.com/pdf3369

Comentarios de: J2ME Programando un cronómetro para nuestro celular (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad