0% acharam este documento útil (0 voto)
5 visualizações13 páginas

Programação Java para Celulares

O documento aborda a programação para celular utilizando Java, com foco no desenvolvimento de aplicações através do Sun Java Wireless Toolkit for CLDC. Ele inclui instruções sobre criação de projetos, ciclo de desenvolvimento, construção de código, e utilização da biblioteca javax.microedition.lcdui para interface gráfica. Além disso, apresenta exemplos práticos e exercícios para consolidar o aprendizado.
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
5 visualizações13 páginas

Programação Java para Celulares

O documento aborda a programação para celular utilizando Java, com foco no desenvolvimento de aplicações através do Sun Java Wireless Toolkit for CLDC. Ele inclui instruções sobre criação de projetos, ciclo de desenvolvimento, construção de código, e utilização da biblioteca javax.microedition.lcdui para interface gráfica. Além disso, apresenta exemplos práticos e exercícios para consolidar o aprendizado.
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

1/13

Programação para Celular com Java

Objetivo:
• Capacitar o aluno a desenvolver aplicações com o Sun Java
Wireless Toolkit for CLDC.

Sumário
1. Introdução: .......................................................................................................... 2
2. Como criar um novo Projeto?.............................................................................. 2
3. Ciclo Simples de Desenvolvimento ..................................................................... 3
3.1- A edição do código fonte. ............................................................................. 3
3.2- Código do Exemplo ...................................................................................... 3
3.3- Aonde salvar o arquivo digitado? ................................................................. 4
3.4- Análise do código ......................................................................................... 4
4. Build .................................................................................................................... 4
4.1- Resultado da Execução................................................................................ 5
Observação...................................................................................................... 5
5. A Biblioteca [Link].*. ................................................................ 6
5.1 As classes [Link] e
[Link] .......................................................... 7
6. A classe [Link] ....................................................... 7
6.1 O construtor ................................................................................................... 7
6.2 Exemplo ..................................................................................................... 7
6.3 Exercício. ....................................................................................................... 8
7. A Classe [Link].............................................................. 9
Tipos de Tela: ...................................................................................................... 9
7.1 Tela Form................................................................................................... 9
7.2 Tela TextBox ............................................................................................ 10
Exemplo/Exercício: ............................................................................................ 11
Referência Bibliográfica: ....................................................................................... 13

Prof. Vida
vida@[Link]
2/13

MIDlet suites são organizadas em projetos. O resultado de um


1. Introdução: projeto é um Midlet Suite.
Um projeto contém todos os arquivos necessários para a
construção de um MIDlet suite.

1. Na interface do WTK2.5.2, clique no botão New Project.


2. Como criar
um novo
Projeto?

2. Na Janela que é apresentada informe o nome do projeto e o nome


da classe, conforme ilustrado pela figura a seguir.

3. Uma janela de Settings for Projects é apresentada. Sem modificar


nada, clique no botão OK dessa janela.
Mensagens serão apresentadas no console informando o local de
armazenamento dos códigos, conforme ilustra a figura a seguir.

Prof. Vida
vida@[Link]
3/13

O ciclo de desenvolvimento de uma aplicação é formado por:


3. Ciclo
Simples de 1. Edit: Editar e salvar o código fonte.
Desenvolvime 2. Build: Compilação e pré-verificação do código Java.
nto 3. Run: Execução das classes compiladas em um emulador.

3.1- A edição do Crie no seu editor de códigos a seguir:


código fonte.
3.2- Código do
//////////////// arquivo MeuPrimeiroMidlet_Midlet.java
Exemplo
import [Link].*;
import [Link];
public class MeuPrimeiroMidlet_Midlet
extends MIDlet implements CommandListener
{
private Form janela;
private Display display;
public void startApp()
{ display = [Link](this);
janela = new Form("MeuMidlet");
[Link]("Ola Mundo!");
Command exitCommand = new Command("Exit"
, [Link], 0);
[Link](exitCommand);
[Link](this);
[Link](janela);
}

public void pauseApp () {}


public void destroyApp(boolean unconditional){}

public void commandAction(Command c, Displayable s)


{ if ([Link]() == [Link])
notifyDestroyed();
}
}
/* Observação Importante: O código Java exemplificado não deverá

ser compilado através da interface de edição. A compilação do


código será realizada no WTK2.5.2. */

Prof. Vida
vida@[Link]
4/13

3.3- Aonde salvar o Esse arquivo deve ser salvo no diretório


arquivo digitado? workdir\apps\MeuPrimeiroMidlet\src\ .
Se foi utilizado a instalação padrão, o diretório a ser instalado será
o ilustrado na figura a seguir.

3.4- Análise do A API microedition é um conjunto de pacotes exclusivos. Esse


código conjunto é formado pelos seguintes pacotes:

• [Link].* : define as aplicações


e a interação entre a aplicação e o ambiente de execução.
• [Link].* : Fornece classes para
implementação de interface gráfica.
• [Link].* : Fornece
classes para o desenvolvimento de jogos.
• [Link].* : Fornece classes para
implementar o armazenamento de dados no dispositivo.
• [Link].* : Permite autenticar a
comunicação segura.

O Midlet está inicialmente no estado carregado. Quando a


aplicação é iniciada pelo método startApp(), o Midlet muda o seu
estado para ativo. O método pauseApp() dá uma pausa na
execução e o destroyApp() termina a sua execução. A definição
desses três métodos é obrigatoria.
O próximo passo é chamar o compilador através do botão Build
4. Build do WTK2.5.2.
Ao clicar no botão Build da interface do WTK2.5.2, o resultado da

Prof. Vida
vida@[Link]
5/13

compilação é apresentada no console, conforme ilustra a figura a


seguir.

4.1- Resultado da
Execução

Observação A interface gráfica para este tipo de dispositivo é bastante


limitada quando comparada com uma aplicação Desktop.
Tipicamente, a tela possui 95x125 ou 128x128 pixels. Só é possível
utilizar poucos elementos visuais simples.

Prof. Vida
vida@[Link]
6/13

Programação para Celular com Java –


Interface Gráfica
Objetivo:
Capacitar o aluno a
• Criar múltiplos formulários
• Desenvolver elementos navegadores
• Inserir alguns componentes gráficos em uma aplicação
• Adicionar interatividade na aplicação.

5. A Biblioteca [Link].*.

Essa biblioteca é responsável por disponibilizar os seguintes componentes:


• [Link]
• [Link]
• [Link]
• [Link]
• [Link]
• [Link]
• [Link]
• [Link]
• [Link]
• [Link]
• [Link]
• [Link]
• [Link]
• [Link]
• [Link]
• [Link]
• [Link]
• [Link]
• [Link]
• [Link]
• [Link]
• [Link]
• [Link]

Prof. Vida
vida@[Link]
7/13

5.1 As classes [Link] e [Link]

Uma instância dessa classe representa a tela de exibição. Pode-se utilizar apenas um
único objeto Display. O Display representao o hardware enquanto que a Displayable é uma
informação que pode ser apresentada no Display.

6. A classe [Link]
Essa classe permite adicionar funcionalidade aos objetos exibidos. Os comandos
podem ser dos tipos listados na Tabela a seguir.

BACK Retorna à tela anterior


CANCEL Cancela uma operação
EXIT Encerra a aplicação
HELP Chama por ajuda
ITEM Utilizado junto com o elemento do tipo choice para
determinar um item da tela
OK Resposta positiva.
STOP Interrompe um processo de execução
SCREEN expecifica que um comando está associado à tela.

6.1 O construtor
Uma instância de Command deve ser inicializada através da definição de um nome, tipo
e prioridade. Por exemplo,
Command sair = new Command("Exit",[Link], 0);
Command ok = new Command("OK",[Link], 1);
Command back = new Command("Back",[Link], 1);

6.2 Exemplo
No Midlet desenvolvido anteriormente, modifique o código inserindo novas opções de
comando, conforme ilustra a figura a seguir.

O resultado da modificação é ilustrado na figura a seguir.

Prof. Vida
vida@[Link]
8/13

6.3 Exercício.

No Midlet desenvolvido até o presente momento, altere o código conforme ilustrado a


seguir. Qual a ordem dos elementos a serem apresentado no Menu?

////////////////////////////// arquivo MeuPrimeiroMidlet_Midlet.java


import [Link].*;
import [Link];

public class MeuPrimeiroMidlet_Midlet


extends MIDlet
implements CommandListener {
private Form janela;
private Display display;

public void startApp() {


display = [Link](this);

janela = new Form("MeuMidlet");


[Link]("Ola Mundo!");

Command exitCommand = new Command("Exit", [Link], 1);


Command ok = new Command("OK",[Link], 0);
Command back = new Command("Back",[Link], 2);
Command parar = new Command("Parar",[Link],3 );
Command cancelar = new Command("Cancelar",[Link],4 );
Command valorPi = new Command("Valor de Pi", [Link],5);

[Link](exitCommand);
[Link](ok);
[Link](back);

Prof. Vida
vida@[Link]
9/13

[Link](parar);
[Link](cancelar);
[Link](valorPi);
[Link](this);

[Link](janela);
}
public void pauseApp () {}

public void destroyApp(boolean unconditional) {}

public void commandAction(Command c, Displayable s) {


if ([Link]() == "Exit")
notifyDestroyed();
else [Link]("\n"+[Link]());

if ([Link]() == "Valor de Pi")


[Link]("="+ [Link]);
}
}

7. A Classe [Link]

A classe Screen permite a inserção de objetos gráficos.

Tipos de Tela:
A classe Screen admite quatro tipos de tela, a saber:
• Form
• Alert
• List
• TextBox

7.1 Tela Form


Form é uma tela que pode conter diversos tipos de elementos gráficos, tais como
imagens, campos de edição e textos. O exemplo estudado até o presente momento utilizou
apenas a Tela Form.

Construtor O construtor do Form deve ser chamado com a


seguinte estrutura:
• Form(String title) : Cria um formulário vazio.
• Form(String title, Item[] items) : Cria um
formulário com alguns itens.

Prof. Vida
vida@[Link]
10/13

Exemplo de construtor:
Form janela = new Form("MeuMidlet");

Outro exemplo de Construtor:


Item[] lista = new Item[3];
lista[0] = new StringItem(
"Opção 1","",[Link]);
lista[1]= new StringItem(
"Opção 2",””,[Link]);
lista[2]= new StringItem(
"Opção 3","",[Link]);
janela = new Form("MeuMidlet",lista);

CommandListener Um form pode conter comandos de ações. Exemplo de definição de


CommandListener:
[Link](this);
Métodos int append(Item i) Adiciona um item ao formulário
void deleteAll( ) Deleta todos os itens do formulário
int getHeight( ) Obtém a largura da tela
int getWidth ( ) Obtém o comprimento da tela
void insert(int p, Item i) Insere um item noformulário

7.2 Tela TextBox

A classe TextBox é um tipo de tela.

Construtor O construtor pode ser definido conforme o exemplo a seguir:


TextBox entrada1 = new TextBox(String title
, String text
, int maxSize
, int constraints)

Os parâmetros necessários ao construtor podem ser definidos como


sendo:
• title – O título do display

• text – O conteúdo inicial a ser apresentado.

• maxSize – a capacidade máxima em caracteres.


• constraints – ANY, EMAILADDR, NUMERIC, PHONENUMBER, URL
DECIMAL e PASSWORD, UNEDITABLE ,SENSITIVE
,NON_PREDICTIVE ,INITIAL_CAPS_WORD
,INITIAL_CAPS_SENTENCE

Métodos void delete(int i, int f) Deleta caracteres do TextBox


Relacionados String getString( ) Retorna o seu conteúdo
void insert(String s, int p) Insere a string s na posição p

Prof. Vida
vida@[Link]
11/13

void setMaxSize(int n) Define o tamanho máximo que o


TextBox pode conter
void setTitle(String s) Dá um título ao TextBox
int size() Retorna a quantidade de
caracteres do TextBox.

Exemplo/Exercício:

Modifique o exemplo anterior, adicionando os novos conceitos apresentados, conforme o


código abaixo. O que a aplicação faz?

////////////////////////////// arquivo MeuPrimeiroMidlet_Midlet.java


import [Link].*;
import [Link];

public class MeuPrimeiroMidlet_Midlet


extends MIDlet
implements CommandListener {
private Form janela;
private final int tamanho = 3;
private TextBox[] entrada = new TextBox[tamanho];
private Item[] lista = new Item[tamanho];
private StringItem[] campos = new StringItem[tamanho];
private Display display;

public void startApp() {


display = [Link](this);
campos[0] = new StringItem("Nome","",[Link]);
campos[1] = new StringItem("Idade","",[Link]);
campos[2] = new StringItem("Senha","",[Link]);

for (int i = 0; i < tamanho; i++)


lista[i] = campos[i];

janela = new Form("MeuMidlet",lista);


[Link]("\nOla Mundo!");

entrada[0]= new TextBox("Nome",null, 20


, TextField.INITIAL_CAPS_WORD);
entrada[1] = new TextBox("Idade", null, 2, [Link]);

Prof. Vida
vida@[Link]
12/13

entrada[2] = new TextBox("Senha", null, 8


, [Link]);

Command exitCommand = new Command("Exit", [Link], 1);


Command nome = new Command("Nome",[Link], 0);
Command idade = new Command("Idade",[Link], 0);
Command senha = new Command("Senha",[Link], 0);
Command back = new Command("Back",[Link], 2);
Command parar = new Command("Parar",[Link],3 );
Command cancelar = new Command("Cancelar",[Link],4 );
Command valorPi = new Command("Valor de Pi",[Link],5);

for (int i = 0; i < tamanho; i++) entrada[i].addCommand(back);

[Link](exitCommand);
[Link](nome);
[Link](idade);
[Link](senha);
[Link](back);
[Link](parar);
[Link](cancelar);
[Link](valorPi);
[Link](this);
for (int i = 0; i < tamanho; i++)
entrada[i].setCommandListener(this);
[Link](janela);
}
public void pauseApp () {}

public void destroyApp(boolean unconditional) {}

public void commandAction(Command c, Displayable s) {


if ([Link]() == "Back")
{ for (int i = 0; i < tamanho; i++)
campos[i].setText(entrada[i].getString());
[Link](janela);
}
if (s==janela)
{ if ([Link]() == "Exit")

Prof. Vida
vida@[Link]
13/13

notifyDestroyed();
else if ([Link]() == "Nome")
[Link](entrada[0]);
else if ([Link]() == "Idade")
[Link](entrada[1]);
else if ([Link]() == "Senha")
[Link](entrada[2]);
else [Link]("\n"+[Link]());

if ([Link]() == "Valor de Pi")


[Link]("="+ [Link]);
}
}
}

Referência Bibliográfica:

Título:Java para Dispositivos Móveis : desenvolvendo aplicações com J2ME


Ano: 2007
Autor: Thienne M. Johnson
Editora: Novatec Editora
ISBN: 978-85-7522-143-3

Prof. Vida
vida@[Link]

Você também pode gostar