Java ME
Voltar para Programação para Dispositivos Móveis.
O Java ME, ou Java Micro Edition, é uma plataforma de desenvolvimento e execução de aplicações java para dispositivos móveis.
Instalação do Java ME no Windows
Acesse o site da Oracle e baixe o Java Devopment Kit (JDK). Pode ser o java SE mesmo. Instale o aplicativo e siga os procedimentos até sua finalização. Sua instalação pode ser feita no diretório padrão mesmo, por exemplo:
C:\Arquivos de programas\Java\jdk1.6.0_24
Depois, no mesmo site da Oracle, procurar pelo Java ME. Lá você deve encontrar o Sun Java Wireless Tolkit 2.5.2 for CLDC ou superior. Faça download desse arquivo para seu sistema operacional (Windows ou Linux) e inicie a instalação.
Quando chegar na Tela Java TM Virtual Machine Location, selecione o diretório da maquina virtual java, conforme passado acima, o mesmo selecionado para a instalação.
Quando requisitar o diretório do WTK, selecione o diretório, por exemplo (com WTK em maiúsculas):
C:\Java\WTK
Agora vá no site do Eclipse e faça download da versão mais recente do Pulsar for Mobile Developers. Descompacte-o e coloque no diretório:
C:\Java\eclipse
Feito isso, vá no diretório onde o eclipse foi instalado, e execute o arquivo eclipse.exe. Escolha o workspace da qual você irá querer trabalhar. Por exemplo:
C:\Java\workspace
Configuração
A plataforma Pulsar do Eclipse faz a integração de ferramentas de desenvolvimento para dispositivos móveis. Antes de começar a desenvolver, é necessário efetuar algumas configurações.
Na tela do ambiente de criação de projetos, clique no menu Window e depois em Preferences e clique em Java ME. Selecione o diretório do "Antenna Settings" clicando no botão Browser e selecionando o diretório raiz de WTK (C:\Java\WTK) em WTK Root.
Ainda em Preferences Amplie a opção do Java ME e selecione Device Management. Clique em Manual Install para configurar um Celular Virtual.
Clique o botão Browser para procurar as devices do Java ME, localizados no diretório que instalamos o WTK (C:\Java\WTK). Clique em Finish.
Programa Hello World
A primeira coisa é criar um projeto do aplicativo. Para isso, vá em Menu File, em New e clique em Other...
Na janela da criação do projeto, vá em Java ME e abra seus sub-itens. Dê um duplo clique em MIDlet Project.
Em Project name' coloque o nome do projeto. No caso HelloWorld. Depois pressione o botão Next para configurar a versão do JME do projeto. Em Microedition Profile você pode selecionar a versão da máquina virtual. No caso, vamos trabalhar com a default. O eclipse vai pedir para abrir a perspectiva específica para esse tipo de projetos. Aceite.
Agora vamos criar a classe principal do seu aplicativo JME, o Midlet. Essa classe é aquela que deverá possuir os comandos do seu programa. Para isso, clique com o botão direito do mouse em src, vá em New e depois JME MIDLet.
Nessa pasta criaremos o midlet, que é uma classe principal para seu aplicativo JME funcionar, com comandos que sempre deverão ter no aplicativo. Para isso, clicaremos com botão direito na pasta que acabamos de criar e no menu que surgirá, clicaremos em "New" e depois em "Java ME MIDLet".
Em Name digite o nome da classe: HelloWorld. Clique em Finish.
É claro que uma boa metodologia de programação em Java, é que criemos pacotes para gerenciar nossas classes. Contudo, esse é apenas um exemplo e é apresentado aqui da forma mais simples possível.
Agora copie o código a seguir e cole no código do programa criado.
Programa HelloWorld
1import javax.microedition.midlet.MIDlet;
2import javax.microedition.midlet.MIDletStateChangeException;
3import javax.microedition.lcdui.Command;
4import javax.microedition.lcdui.CommandListener;
5import javax.microedition.lcdui.Display;
6import javax.microedition.lcdui.Displayable;
7import javax.microedition.lcdui.Form;
8import javax.microedition.lcdui.TextField;
9
10
11public class HelloWorld extends MIDlet implements CommandListener {
12 private Display display;
13 private TextField textBox;
14 private Command sair;
15 private Form mainForm;
16
17 public HelloWorld() {
18 display = Display.getDisplay(this);
19 mainForm = new Form("Hello World Java ME");
20 sair = new Command("Exit", Command.SCREEN, 1);
21 textBox = new TextField("Text", "Hello World!", 15, TextField.ANY);
22 mainForm.addCommand(sair);
23 mainForm.append(textBox);
24 mainForm.setCommandListener(this);
25 }
26
27 protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
28 // TODO Auto-generated method stub
29
30 }
31
32 protected void pauseApp() {
33 // TODO Auto-generated method stub
34
35 }
36
37 protected void startApp() throws MIDletStateChangeException {
38 display.setCurrent(mainForm);
39 }
40
41 public void commandAction(Command cmd, Displayable d) {
42 if (cmd == sair) {
43 try {
44 destroyApp(false);
45 } catch (MIDletStateChangeException e) {
46 e.printStackTrace();
47 }
48 notifyDestroyed();
49 }
50 }
51}
Depois salve e execute o projeto.
Outro Exemplo: Aplicação Calculadora
Esta é uma aplicação muito simples que possui apenas os comandos de somar e diminuir. Para informar o resultado, é utilizado o recurso Alert.
1import javax.microedition.midlet.MIDlet;
2import javax.microedition.midlet.MIDletStateChangeException;
3import javax.microedition.lcdui.Alert;
4import javax.microedition.lcdui.AlertType;
5import javax.microedition.lcdui.Command;
6import javax.microedition.lcdui.CommandListener;
7import javax.microedition.lcdui.Display;
8import javax.microedition.lcdui.Displayable;
9import javax.microedition.lcdui.Form;
10import javax.microedition.lcdui.TextField;
11
12public class Calculadora extends MIDlet implements CommandListener {
13 private Form form;
14 private Display display;
15 private Command somar;
16 private Command diminuir;
17 private Command sair;
18 private TextField campoA;
19 private TextField campoB;
20
21 public Calculadora() {
22 display = Display.getDisplay(this);
23 form = new Form("Hello World Java ME");
24 sair = new Command("Exit", Command.SCREEN, 1);
25 somar = new Command("Somar", Command.OK, 0);
26 diminuir = new Command("Diminuir", Command.OK, 0);
27 campoA = new TextField("A:", "", 10, TextField.ANY);
28 campoB = new TextField("B:", "", 10, TextField.ANY);
29 form.addCommand(sair);
30 form.addCommand(somar);
31 form.addCommand(diminuir);
32 form.append(campoA);
33 form.append(campoB);
34 form.setCommandListener(this);
35 }
36
37 protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
38 // TODO Auto-generated method stub
39
40 }
41
42 protected void pauseApp() {
43 // TODO Auto-generated method stub
44
45 }
46
47 protected void startApp() throws MIDletStateChangeException {
48 display.setCurrent(form);
49 }
50
51 public void commandAction(Command cmd, Displayable d) {
52 if (cmd == sair) {
53 try {
54 destroyApp(false);
55 } catch (MIDletStateChangeException e) {
56 e.printStackTrace();
57 }
58 notifyDestroyed();
59 }
60 if (cmd == somar) {
61 Integer a = Integer.valueOf(campoA.getString());
62 Integer b = Integer.valueOf(campoB.getString());
63 int out = a.intValue() + b.intValue();
64 String txt = campoA.getString() + " + " + campoB.getString()
65 + " = " + String.valueOf(out);
66 Alert alert = new Alert("Somar", txt, null, AlertType.INFO);
67 display.setCurrent(alert);
68 }
69 if (cmd == diminuir) {
70 Integer a = Integer.valueOf(campoA.getString());
71 Integer b = Integer.valueOf(campoB.getString());
72 int out = a.intValue() - b.intValue();
73 String txt = campoA.getString() + " - " + campoB.getString()
74 + " = " + String.valueOf(out);
75 Alert alert = new Alert("Diminuir", txt, null, AlertType.INFO);
76 display.setCurrent(alert);
77 }
78
79 }
80}
Exercícios
Fazer uma pequena aplicação utilizando os conceitos e exemplos apresentados até agora. Utilize campos de texto, comandos e Alert. Opcionalmente, pesquise outros elementos que podem ser adicionados e utilizados na aplicação.