programa expresso de capacitação módulo j2me aula 3 – midp
TRANSCRIPT
![Page 1: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/1.jpg)
Programa Expresso de CapacitaçãoMódulo J2ME
Aula 3 – MIDP
![Page 2: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/2.jpg)
Pausa para reflexão
"Sem esforço não há progresso, mas com esforço também não há progresso”
Ryotan Tokuda, Mestre Zen
![Page 3: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/3.jpg)
Agenda• Overview MIDP
• Tratamento de eventos
• High-level API de Componentes de interface com o usuário - javax.microeidtion.lcdui.*
![Page 4: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/4.jpg)
Overview MIDP
• Elemento-chave no mundo J2ME• Junto com CLDC
• Conectividade
• Interface gráfica rica
![Page 5: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/5.jpg)
Relembrando...• Mobile Information Device Profile
• MIDP applications = MIDlets = CLDC + MIDP
![Page 6: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/6.jpg)
MIDlets
• Componentes do MIDlet• JAD – usado pelo JAM. Possui informações a
respeito do JAR.• JAR – Código compilado, junto com recursos.
• Java Application Manager:• Software responsável por instalar, remover e
executar MIDlets• Dependente de dispositivo e de fabricante
• Mais de um MIDlet pode estar em um JAR.
![Page 7: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/7.jpg)
Estrutura de um MIDletimport javax.microedition.midlet.MIDlet;
public class helloWorld extends MIDlet {
public helloWorld () { System.out.println("helloWorld()");}
// obrigatorioprotected void startApp() {
System.out.println("startApp()");}
// obrigatorioprotected void pauseApp() {
System.out.println("pauseApp()");}
// obrigatorioprotected void destroyApp(boolean arg0) {
System.out.println("destroyApp()");}
}
![Page 8: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/8.jpg)
Ciclo de vida de um MIDlet• PAUSA
• Depois da chamada do construtor e antes da inicialização pelo JAM
• Durante o processo de
execução
• ATIVO
• MIDlet em execução
• Durante o processo de
execução
• DESTRUÍDO
• Desligada pelo JAM
• Libera todos os recursos
alocados
![Page 9: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/9.jpg)
Hierarquia de classes
![Page 10: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/10.jpg)
Display
• Gerenciador de tela que controla o que é mostrado no dispositivo
• Recupera informações sobre a tela atual (cores suportadas, resolução, etc)
• Objeto único para cada MIDlet
• Não é instanciado
![Page 11: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/11.jpg)
Usando Displayimport javax.microedition.lcdui.Display;import javax.microedition.midlet.MIDlet;
public class DisplayStats extends MIDlet {private Display display;
// construtorpublic DisplayStats() {display = Display.getDisplay(this);...}...}
![Page 12: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/12.jpg)
Display – métodos principais
• static Display getDisplay(MIDlet m)• Retorna o objeto display deste MIDlet
• Displayable getCurrent()• Retorna o objeto displayable corrente
• void setCurrent(Displayable d)• Mostra um objeto displayable
• int numColors()• Retorna o número de cores disponíveis
![Page 13: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/13.jpg)
Displayable
• Objeto que pode ser visto num dispositivo
• Screen • Objetos Displayable para Interface
alto nível
• Canvas• Objetos Displayable para Interface
baixo nível
![Page 14: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/14.jpg)
Voltando ao Diagrama ...
![Page 15: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/15.jpg)
Enfim um Hello Worldimport javax.microedition.lcdui.Display;import javax.microedition.lcdui.TextBox;import javax.microedition.midlet.MIDlet;
public class HelloMIDlet extends MIDlet { private Display myDisplay; private TextBox myTextBox; public HelloMIDlet() {
myDisplay = Display.getDisplay(this); myTextBox = new TextBox("", "Hello World", 11, TextField.ANY);
} public void startApp() { this.myDisplay.setCurrent(myTextBox); } public void pauseApp() {} public void destroyApp(boolean unconditional) {}}
![Page 16: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/16.jpg)
Pausa para reflexão
"Sem esforço não há progresso, mas com esforço também não há progresso”
Ryotan Tokuda, Mestre Zen
![Page 17: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/17.jpg)
Tratamento de eventosInterface de alto nível
![Page 18: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/18.jpg)
Overview• Quadro geral
• Objetos Command
• Objetos Item
• Command e CommandListener
• Item e ItemStateListener
![Page 19: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/19.jpg)
Quadro geral• Eventos são essenciais para MIDlets, pois são
chave para interatividade
• Para gerenciarmos um evento:• O Hardware reconhece o evento físico• O software é notificado do evento• O evento é tratado pelo programador
![Page 20: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/20.jpg)
Objetos Command• Contém informações sobre um evento• Podem ser considerados como “botões”• Soft keys• Teclas
• O processo de eventos1. Criação do Objeto Command
2. Adicionar o comando a um Displayable
3. Adicionar um receptor (Listener) ao Displayable
![Page 21: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/21.jpg)
Objetos Command• Command cmdExit = new Command(“exit”, Command.EXIT,
1)
• Argumentos• Nome para o comando• Constante (OK, EXIT, HELP, BACK, etc)• Prioridade
• Constante• Mapeia o posicionamento dos comandos na tela• Depende da implementação do fabricante
• Prioridade• Útil para a organização dos comandos em Menus e de
botões de software na tela
![Page 22: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/22.jpg)
CommandListener• É o “receptor” de um comando
• Método a ser sobrescrito:• commandAction (Command c, Displayable d )
• Em commandAction é definido como o aplicativo deve se comportar quando um evento é disparado
![Page 23: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/23.jpg)
Exemplo (faltam uns ajustes)• Mão na massa:• Classe Form é um Displayable
private Form fmMain; private Command cmExit;fmMain = new Form(“Curso CITi"); ...cmExit = new Command("Exit", Command.EXIT, 1); // 1º passo...fmMain.addCommand(cmExit); //2º passofmMain.setCommandListener(this); // 3º passo...public void commandAction(Command c, Displayable s) {
if (c == cmExit) {destroyApp(true);notifyDestroyed();}
}
![Page 24: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/24.jpg)
Exercício• Crie um MIDlet que contenha um Form e controle três
botões: • Form fmMain = new Form(“Tela Principal”);• Lembre-se que Form é um objeto Displayable
• “exit”, usado para sair do MIDlet• “hello” imprime “Hello World”• “back” volta para a tela principal, após o usuário ter
visualizado a mensagem
![Page 25: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/25.jpg)
Item• Qualquer componente que possa ser
adicionado a um objeto Form (ver diagrama de classes)
• Item é uma classe abstrata
• Métodos • String getLabel ()• Void setLabel (String label)
![Page 26: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/26.jpg)
ItemStateListener• O receptor de eventos relacionados a objetos
Item
• Método a ser sobrescrito• void itemStateChanged ()• No mesmo modelo dos objetos Command• Este método é chamado quando o “item” tiver
sofrido alteração que gere evento
![Page 27: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/27.jpg)
Exemplo// cria o objeto Item
df = new DateField("Data :", DateField.DATE);df.setDate(new java.util.Date());
// adiciona o objeto a um displayable
formMain.append(df);
// seta o receptor
formMain.setItemStateListener(this);
![Page 28: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/28.jpg)
Exercício• Crie um MIDlet com um DateField e que
imprime “Item State Changed ...” quando seu estado é alterado
• Para esta implementação pode ser usado System.out.println()
![Page 29: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/29.jpg)
Interface gráfica de alto nível
![Page 30: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/30.jpg)
Overview• Screen• Form• Item• StringItem• DateField• Gauge• TextField• Choice e ChoiceGroup• Image e ImageItem• List• TextBox• Alert e AlertType• Ticker
![Page 31: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/31.jpg)
Screen• Classe progenitora
• Descendente direta de Displayable
• Métodos principais:• String getTitle ()• void setTitle(String title)• Ticker getTicker () • void setTicker (Ticker t)
![Page 32: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/32.jpg)
Form• Container que armazena vários componentes que
podem ser exibidos na tela• Métodos principais:• int append (Item item)• int append (String texto)• void delete(int itemNum)• Item get (int itemNum) • int size ()
![Page 33: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/33.jpg)
Form - ExemploForm fm = new Form(“Formulario”);
...
fm.append(item) // adiciona um item
...
size = fm.size() // retorna o tamanho
...// seta o receptor para um evento com Item
fm.setItemStateListener (ItemStateListener)
![Page 34: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/34.jpg)
Item• Componente que pode ser adicionado a um
objeto Form
• Subclasses• ChoiceGroup, DateField , Gauge, ImageItem,
StringItem, TextField
• ItemStateListener• Interface a ser implementada para gerenciar
eventos relacionados a Item
![Page 35: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/35.jpg)
Item - Exemploprivate Form fmMain; // formularioprivate DateField dfToday; // o objeto DateField...fmMain = new Form(“My Form"); // instancia de FormdfToday = new DateField("Today:", DateField.DATE); // DateField...fmMain.append(dfToday); // adiciona Item (DateField) ao FormfmMain.setItemStateListener(this); // Gerencia os eventos de Form...public void itemStateChanged(Item item) {if (item == dfToday)...}
![Page 36: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/36.jpg)
StringItem• Rótulo estático e mensagem de texto• Não é editável• Não reconhece eventos• Métodos principais:• StringItem(String label, String text)• String getText() – Obtém o valor atual do texto• Void setText(String text) – Configura o novo valor do texto• String getLabel() – Obtém o valor do rótulo
![Page 37: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/37.jpg)
StringItem - Exemploprivate Form fmMain; // formularioPrivate StringItem siLogin; // o objeto StringItem...fmMain = new Form(“PEC"); // instancia de FormsiLogin = newStringItem(“Login: ", “ela”); // StringItem...fmMain.append(siLogin); // adiciona Item (StringItem) ao Form...
![Page 38: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/38.jpg)
Alternativa ao StringItem...
private Form fmMain;
int i = fmMain.append(“Login: ela”);
...
StringItem tmp = (StringItem) fmMain.get(i);
...
![Page 39: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/39.jpg)
Exercício• Construa um MIDlet simples que possui dois botões
(next e exit). Na primeira tela é exibido um StringItem com o label “Dados 1/2” e o texto “Nome: José”
• Next: passa para uma outra tela, onde o label é “Dados 2/2” e texto “Fone: 555-5555”
• Exit: sai da aplicação em qualquer das “duas” telas
![Page 40: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/40.jpg)
Exercitando ...• Insira um texto (label) em um Form usando as
duas maneiras aprendidas, em seguida recupere ambos na forma de StringItem e para cada um imprima no console o label e o texto.
• O que você conclui?
![Page 41: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/41.jpg)
DateField• Objeto Item que manipula de forma simples
tipos Date (java.util)
• Métodos principais:• DateField (String label, int modo)• Date getDate ()• void setDate(Date data)
![Page 42: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/42.jpg)
DateField - Exemplo// criação do objeto DateField
DateField df = new DateField(“Data:”, DateField.DATE);
...
java.util.Date dataAtual = new java.util.Date ();
df.setDate(dataAtual); // seta a data do DateField
…
df.getDate (); // recupera a data atual
![Page 43: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/43.jpg)
DateField
![Page 44: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/44.jpg)
Gauge• São basicamente indicadores de progresso de
uma ação• Existem dois modos de atualização• Interativo• Não-interativo
• Exemplos• Controle de volume• Progresso de download
![Page 45: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/45.jpg)
Gauge – Continuação • Métodos Principais• Gauge(String label, boolean interactive, int
maxValue, int initialValue) - Construtor• int getValue() – Obtém o valor atual do medidor• void setValue(int value) – Configura o novo valor do
medidor• Void setMaxValue(int maxValue) – Configura o
novo valor máximo
![Page 46: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/46.jpg)
Gauge - Exemplo// Gauge interativo
Gauge gInt = new Gauge(“Volume”, true, 20,2)Gauge nInt = new Gauge(“Volume”,false, 20,2)...// Seta um valor qualquer
gInt.setValue(10)nInt.setVaule(20)// Retorna o valor atual
gInt.getValue()nInt.getValue()
![Page 47: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/47.jpg)
Gauge
![Page 48: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/48.jpg)
TextField• Caixa de texto para formulários• Suporta múltiplas linhas• Opção de filtrar a entrada de dados• CONSTRAINT_MASK• ANY• EMAILADDR• NUMERIC• PASSWORD• PHONENUMBER• URL
![Page 49: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/49.jpg)
TextField - Continuação• Métodos principais
• TextField (String label, String text, int max, int constraints)• void delete(int offset, int length)• int getChars(char[] data)• void insert(String src, int position)• String getString()• int getConstraints() *• int size()
* Usado com CONSTRAINT_MASK
![Page 50: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/50.jpg)
TextField - Exemplo// cria um novo TextField com máscara para número de telefone
tfPhone = new TextField("Phone:", "", 10, TextField.PHONENUMBER);
…// recupera o texto
tf.getChars(arrayDestino);
…
// seta um String
tf.setString(“Curso J2ME”);
…
![Page 51: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/51.jpg)
TextField
![Page 52: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/52.jpg)
Choice e ChoiceGroup• Choice: Interface que define os métodos para
se manipular vários tipos de seleções predefinidas
• ChoiceGroup• Implementa Choice• Pode ser usado como CheckBox ou RadioButton
![Page 53: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/53.jpg)
ChoiceGroup - Continuação• Tipos• EXCLUSIVE• MULTIPLE
• Métodos principais:• ChoiceGroup(String label, int choiceType)• int append(String stringPart, Image imagePart)• void insert(int elementNum, String stringElement, Image
imageElement)• getSelectedIndex()• boolean isSelected(int elementNum)
![Page 54: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/54.jpg)
ChoiceGroup
![Page 55: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/55.jpg)
Image• Representa uma imagem a ser exibida no
display do dispositivo• Tipos• Imutável: pode ser usada diretamente no Form, nas
opções de um Choice ou em um Alert. • Mutável: mais flexível. Simplesmente um espaço de
memória reservado em que poderá ser pintada a imagem
![Page 56: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/56.jpg)
ImageItem• Possibilita a exibição de uma imagem em um objeto
Form• A exibição depende da implementação do fabricante
do dispositivo• Métodos principais• ImageItem(String label, Image img, int layout, String altText)• ImageItem(String label, Image img, int layout, String altText)• void setImage(Image img)• void setLayout(int layout)
![Page 57: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/57.jpg)
ImageItem – Exemplo...try {
Image img = Image.createImage(“/citi.png”); Image img2 = Image.createImage(“/bird.png”);} catch (IOException ioe) { ... }...ImageItem imCiti = new ImageItem(null, img, ImageItem.LAYOUT_DEFAULT);...fmMain.append(imCiti);...fmMain.append(Img2);
![Page 58: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/58.jpg)
List• Semelhante a ChoiceGroup, entretanto não
gera eventos de Item
• Possui mais um tipo que é IMPLICIT, não implementado por ChoiceGroup
• Não herda de Item, ao contrário de ChoiceGroup
![Page 59: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/59.jpg)
List - Continuação• Métodos principais• List(String title, int listType)• int append(String stringPart, Image imagePart)• void delete(int elementNum)• int getSelectedIndex()• boolean isSelected(int elementNum)• int size()
![Page 60: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/60.jpg)
List - Exemplo• www/~ela/PEC/ListDemo.java
![Page 61: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/61.jpg)
List
![Page 62: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/62.jpg)
TextBox• Caixa de texto que permite filtragem para
certos tipos de caracteres
• Semelhante a TextField
• Não herda de Item, ao contrário de TextField
![Page 63: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/63.jpg)
TextBox• Métodos principais:• TextBox (String title, String text, int maxSize, int
constraints)• void delete(int offset, int length)• void insert(String src, int position)• int getChars(char[] data)• void setConstraints(int constraints)• int size()
![Page 64: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/64.jpg)
TextBox - ExemplotextBox tb;...
// instância de TextBox
tb = new TextBox(“TextBox”,””,20,TextField.ANY);
...// seta o display
display.setCurrent(tb);
…// recupera o texto
tb.getChars(arrayDestino);
![Page 65: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/65.jpg)
TextBox
![Page 66: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/66.jpg)
Exercitando ...• Escreva um MIDlet que copia um texto de um
TextBox para outro. O texto deverá ser selecionado pela posição do cursor
• Possui os seguintes comandos:• EXIT: termina a aplicação• COPY: copia o texto para outro TextBox• BACK: volta para o TextBox da tela inicial
![Page 67: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/67.jpg)
Alert• Caixa de diálogo simples que possui uma imagem e
um texto, ambos opcionais• Objetos Command (“botões”) não podem ser
adicionados ao objeto Alert• A interatividade com o Alert fica a cargo do fabricante
do dispositivo• Tipos• Modal• Timed
![Page 68: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/68.jpg)
Alert - Continuação• Pode ser usado diretamente por Display ou usado em
conjunto com um Displayable• Métodos principais:• Alert(String title, String alertText, Image alertImage,
AlertType at)• String getString()• void setString(String str)• int getTimeout()• void setTimeout(int time)
![Page 69: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/69.jpg)
Alert
![Page 70: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/70.jpg)
AlertType• Classe especialmente útil
• Encapsula informações sobre o Alert e possibilita o suporte a som
• Duas maneiras de se utilizar som• O objeto Alert possuindo um AlertType • Usando um método estático de AlertType
chamando playSound
![Page 71: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/71.jpg)
AlertType• Tipos• ALARM: usado para uma notificação• CONFIRMATION: confirmação de um evento ou
ação• ERROR: indica que um erro foi encontrado• INFO: indica em geral uma informação não-critíca
ao usuário• WARNING: indica problemas potenciais
![Page 72: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/72.jpg)
Alert - ExemploForm fmMain;Alert alerta;...// instancia os objetos
fmMain = new Form(“Tela principal”);alerta = new Alert(“INFO”, “CURSO J2ME”, null, AlertType.INFO);...// seta o alerta para ficar visível
display.setCurrent(alerta, fmMain);
![Page 73: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/73.jpg)
Exercício• Acrescente ao exercício de TextField um Alert
ao abrir a aplicação antes da tela inicial e um Alert caso o par login e senha não seja igual a “adm” e “123” respectivamente.
![Page 74: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/74.jpg)
Ticker• Representa um texto que rola na tela
• É atributo de Screen
• Possui somente três métodos principais• Ticker (String texto)• getString ()• setString (String texto)
![Page 75: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/75.jpg)
Ticker - Exemplo// o Ticker e o objeto Screen
Form fmMain;Ticker testTicker;...// instância do Ticker
testTicker = new Ticker(“Teste Ticker”);…// seta o Ticker do Form
fmMain.setTicker(testTicker);…
![Page 76: Programa Expresso de Capacitação Módulo J2ME Aula 3 – MIDP](https://reader036.vdocuments.mx/reader036/viewer/2022062318/552fc142497959413d8df62a/html5/thumbnails/76.jpg)
Referências
• Wireless Programming with J2ME: Cracking the code, ISBN: 0-7645-4885-9
• Tutoriais da Sun