Esse artigo faz parte da revista WebMobile edição 18. Clique aqui para ler todos os artigos desta edição

Clique aqui para ler este artigo em PDFimagem_pdf.jpg

 

Nesse artigo daremos continuidade a nossa série sobre o desenvolvimento de aplicações JavaME com o Netbeans. O primeiro artigo foi publicado na WebMobile 17. 

O foco do nosso primeiro artigo foi entender como se dá o desenvolvimento de interfaces gráficas das aplicações JavaME utilizando elementos de alto nível. Vimos ainda como fazer uso das funcionalidades do Netbeans e o do seu Mobility pack para agilizar o nosso trabalho.

Agora nosso foco será entender como podemos desenvolver a interface gráfica de uma aplicação JavaME com elementos de baixo nível e armazenar os dados da aplicação dentro do celular.

No primeiro artigo dessa série iniciamos o desenvolvimento de uma aplicação que servia para registrar atendimentos em domicílio. Nesse artigo incrementaremos essa aplicação fazendo uso de elementos gráficos de baixo nível e de conceitos de persistência para armazenar informações.

Agora vamos colocar a mão na massa e continuar o trabalho iniciado no primeiro artigo dessa série.

Fazendo um upgrade na nossa ferramenta

No nosso primeiro artigo fizemos uso do Netbeans 5.5 juntamente com seu Mobility pack para o desenvolvimento da nossa aplicação. Nesse artigo iremos utilizar o Netbeans 6 para continuar o nosso desenvolvimento.

Na verdade, o Netbeans 6 já estava disponível quando iniciamos a nossa série, contudo ele ainda estava na versão beta e por isso preferi escrever o primeiro artigo com a versão 5.5.

Para obtermos o Netbeans 6 devemos ir no endereço http://download.Netbeans.org/Netbeans/6.0/final/. Esse caminho levará a uma página onde estão disponíveis várias configurações do Netbeans, como podemos ver na Figura 1.

 

Figura 1. Escolhendo a Configuração Mobility do Netbeans

 

As configurações vêm com diferentes add-ons instalados. A vantagem disso é que o desenvolvedor pode baixar uma ferramenta mais coerente com as suas necessidades. Dessa forma ele não precisará ao iniciar a sua IDE carregar uma série de coisas que ele não vai utilizar.

Para o nosso trabalho escolhemos a configuração Mobility do Netbeans porque ela traz consigo o Mobility pack, conforme podemos ver na Figura 1.

Migrando um projeto para o Netbeans 6

No nosso primeiro artigo vimos como criar um projeto JavaME no Netbeans. Nesse artigo, em virtude do upgrade do Netbeans, iremos ver como migrar um projeto de uma versão anterior para a versão atual do Netbeans.

Para trazermos um projeto JavaME feito no Netbeans 5.5 com a ajuda do Mobility pack para o Netbeans 6 devemos seguir alguns passos.

Primeiro selecionar a opção “Arquivo” (File), em seguida clicar em “Novo Projeto...” (New Project...) e na janela “Novo Projeto” (New Project) marcar as opções “Mobility” e “Mobile Project from Existing MIDP Sources” conforme vemos na Figura 2. Feito isto clicamos em Next.

 

Figura 2. Reutilizando um projeto no Netbeans 6 - I

 

Neste momento surgirá uma nova janela. Nela devemos informar a localização do código fonte do projeto que queremos reutilizar e também a localização do seu arquivo descritor, o arquivo .jad.

Nesta etapa devemos ter atenção para o fato de apontarmos a pasta onde estão os nossos códigos fontes, não o projeto. Para iniciarmos um novo projeto precisaremos apenas dos fontes do antigo projeto e do seu arquivo descritor.

A janela referente a esta etapa pode ser vista na Figura 3. Concluída essa etapa devemos então dar um nome ao nosso projeto. Como estamos continuando o projeto ajudanteEntrega, iniciado no artigo anterior, chamaremos esse novo projeto de ajudanteEntrega2. Essa etapa pode ser vista na Figura 4.

Ao definir o nome do projeto devemos clicar em “Next >” para chegarmos à última etapa da criação do nosso projeto.

Na última janela que aparece para criarmos o nosso projeto devemos especificar a plataforma com que iremos trabalhar, o emulador que utilizaremos para visualizar a aplicação, a configuração e o perfil que a nossa aplicação usará, conforme vemos na Figura 5.

 

Figura 3. Reutilizando um projeto no Netbeans 6 - II

 

Figura 4. Reutilizando um projeto no Netbeans 6 - III

 

Figura 5. Reutilizando um projeto no Netbeans 6 - IV

 

Como vemos na Figura 5, para esse projeto utilizaremos como plataforma o Wireless Toolkit 2.5.1, que já vem com o Mobility pack. Vale lembrar que o Mobility pack veio integrado na configuração do Netbeans que escolhemos no tópico “Fazendo um upgrade da nossa ferramenta”.

Voltando à última etapa, definimos como emulador o Default Color Phone, como configuração a CLDC-1.1 e como perfil o MIDP-2.1. Feitas as escolhas apertamos o botão “Finish” e o nosso projeto estará criado.

Ao observamos a estrutura de pacotes do nosso projeto notamos que a nossa visual midlet, a classe Cobrador, está com uma aparência estranha. O ícone da classe Cobrador está cinza.

Isso ocorre porque existem diferenças na forma como o Mobility pack usado no artigo anterior, com o Netbeans 5.5, e o utilizado neste artigo, na versão 6 do Netbeans, escrevem o código para gerar a interface gráfica.

Esse problema pode ser solucionado de forma simples. Primeiro é preciso apenas dar dois cliques na classe Cobrador e apertar botão Converter (Convert) que aparecerá na janela mostrada na Figura 6. Vale lembrar que será gerada uma nova visual Midlet no projeto e, portanto ela terá um novo nome. Chamaremos essa nova Midlet de Cobrador2 e a partir de então passaremos a trabalhar com ela, não mais com a classe Cobrador.

Gerada a classe Cobrador2 precisaremos fazer alguns ajustes. Primeiro é adicionar os imports da Classe Atendimento e da classe java.util.Vector. Por fim, devemos retirar os comentários dos métodos startApp(), pauseApp() e destroyApp(boolean unconditional) localizados no fim da classe Cobrador2 (ver Listagem 1).

        

Figura 6. Atualizando uma Visual Midlet de um projeto anterior

Listagem 1. Código cujo comentário será eliminado em Cobrador2

1.          public void startApp() {

2.              if (midletPaused) {

3.                  resumeMIDlet ();

4.              } else {

5.                  initialize ();

6.                  startMIDlet ();

7.              }

8.              midletPaused = false;

9.          }

10.   

11.      public void pauseApp() {

12.          midletPaused = true;

13.      }

14.   

15.      public void destroyApp(boolean unconditional) {

16.     }

 

Com o objetivo de facilitar o nosso trabalho tomaremos mais uma providência. Clicaremos com o botão direito do mouse em nosso projeto, selecionaremos a opção propriedades. Na janela que irá abrir escolheremos a opção Application Descriptor, referente ao arquivo .jad da aplicação. Iremos para a aba Midlets e removeremos a antiga classe Cobrador da lista de Midlets da nossa aplicação, conforme vemos na Figura 7. 

Figura 7. Retirando a Antiga Midlet Cobrador do Arquivo Descritor

 

Agora que já migramos o projeto para o Netbeans 6, daremos continuidade ao nosso trabalho definindo o que incluiremos na aplicação.

Definindo tarefas para este artigo

No primeiro artigo dessa série, focamos o nosso trabalho no desenvolvimento da interface gráfica usando elementos de alto nível. Desenvolvemos uma aplicação que fazia o cadastro de atendimentos.

Os atendimentos cadastrados eram armazenados em um vector. Para os fins do nosso trabalho essa era uma abordagem interessante, já que o nosso foco era a interface gráfica. Contudo, no mundo real esse método não é tão útil, já que as informações geradas pela aplicação não eram salvas.

Nesse artigo corrigiremos esse lapso da nossa aplicação. Trabalharemos com a persistência em JavaME. Procuraremos entender os seus principais conceitos e aplicá-los em nosso projeto, fazendo com que nossa aplicação salve as informações geradas por ela.

Também observaremos alguns conceitos a respeito do trabalho com interfaces gráficas utilizando elementos de baixo nível. A nossa meta é gerar um gráfico dos clientes que são mais atendidos utilizando elementos de baixo nível.

A persistência de dados em JavaME

...

Quer ler esse conteúdo completo? Tenha acesso completo