Faça sua primeira aplicação J2ME – Parte 01

Após ler esse artigo você pode falar que já “brincou” um pouco com J2ME. A idéia aqui é construir uma agenda de ramais de uma empresa utilizando as classes do MIDP. Talvez você ande com um papelzinho na carteira com esses números, mas com um bom celular na mão e Java correndo nas veias, é muito provável que você queira fazer uma aplicação simples para armazenar a lista de ramais.

Devido às restrições de recursos nos dispositivos a que o J2ME se destina, a especificação do MIDP introduz um novo modelo de aplicação mais adequado às necessidades destes gadgets. Em MIDP, a unidade básica de execução é o MIDlet, assim como o Applet introduzido no J2SE e o Xlet em JavaTV.

Para construir uma aplicação J2ME é necessário escrever um filho concreto da classe abstrata MIDlet. Essa classe é o ponto de entrada do JAM (Java Application Manager) quando a aplicação é executada. O objeto MIDlet é instanciado e em seguida o método abstrato startApp() é chamado. Se ao invés desse método você escrever
main(String[] args), você ganhará um NullPointerException. A partir daí a aplicação assume o controle, geralmente colocando algum objeto gráfico no display. 

O MIDP também introduziu uma hierarquia de classes específica para interface com o usuário, pacote javax.microedition.lcdui. Assim como o AWT, a aparência (look and feel) de cada componente gráfico depende do dispositivo. A Tabela 1 e a Figura 1 descrevem as classes principais desse pacote. Todas são filhas da classe Displayable, que representa um objeto que pode ser colocado na tela.

 
wm-19-05-2008pic01.JPG

Tabela 1. Principais classes de interface gráfica.

 

wm-19-05-2008pic02.JPG 

Figura 1. Hierarquia da classe Displayable.

 

Um aspecto importante no MIDP é o processamento de eventos. Um objeto da classe Command carrega informação sobre um evento específico. Seja a seleção de um elemento em um List ou o click em um botão. As classes de interface gráfica herdam da classe Displayable os métodos responsáveis por manipular comandos.

Para capturar um evento, é necessário implementar a interface CommandListener, que notifica o lançamento de um comando passando o objeto Command como parâmetro. A Listagem 5 mostra o uso de comandos e listeners de commandos.

Ferramentas necessárias

Há vários IDEs que facilitam o desenvolvimento de aplicações J2ME, como o Borland JBuilder, Sun One Studio, Code Warrior Wireless Studio e Eclipse. Nesse artigo usaremos apenas o J2ME Wireless Tookit da Sun (WTK) e um editor de texto. Uma boa recomendação é o TextPad (www.textpad.com), que suporta endentação e syntax highlight.

O WTK é gratuito e está disponível no site http://java.sun.com/products/j2mewtoolkit. Na época em que esse artigo foi escrito, a última versão do WTK era 2.2 beta. O Wireless Tookit requer a instalação do J2SE JDK. Após a instalação padrão, os arquivos do WTK estarão no diretório C:\WTK22. Dentro da sub-pasta <home_wtk>/docs poderá ser encontrado o javadoc da MIDP, onde você encontrará a especificação das classes mencionadas nesse artigo.

Para executar o WTK, selecione a aplicação KToolbar. Você deverá ver a tela apresentada na Figura 2.

 

wm-19-05-2008pic03.JPG 

Figura 2. Tela inicial do J2ME Wireless Toolkit (WTK).

 

Agora iremos criar um projeto. Click no botão “New Project” e digite o nome CompanyExtensions no nome do projeto e no nome do MIDlet. Uma tela de configuração do projeto será exibida, apenas aceite as configurações padrões. Ao criar o projeto, o WTK criará um novo diretório, <home_wtk>\apps\CompanyExtensions, com as sub-pastas apresentadas na Tabela2.

wm-19-05-2008pic04.JPG
Tabela 2.
Estrutura de diretórios do projeto.

 

Os arquivos .java listados nesse artigo devem ser salvos no diretório src. Já o arquivo texto contendo os nomes e ramais deve ser salvo no diretório res.