Java ME

De Aulas

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.