Académique Documents
Professionnel Documents
Culture Documents
• Canvas:
Uma instancia da classe canvas,
Permite ao desenvolvedor desenhar e
manip lar imagens.
manipular imagens
Prof. Dany S. Dominguez/dany@labbi.uesc.br Tema 2 – Slide 7
Estratégias - Desenvolvimento de Interfaces
• Abstração
Especifica uma interface com usuário em termos
abstratos e delega para a implementação do MIDP
a criação e posicionamento dos elementos
gráficos concretos,
API de Alto-Nível
Alto Nível
• Descobrimento
A aplicação determina as características do
dispositivo em tempo de execução e configura a
interface com o usuário através de programação
g fonte,
no código
API de Baixo-Nível
Prof. Dany S. Dominguez/dany@labbi.uesc.br Tema 2 – Slide 8
As classes de Interface
DESCOBRIMENTO
ABSTRAÇÃO
• Tipos de comandos:
OK, Confirma uma seleção
CANCEL Cancela uma modificação
CANCEL,
BACK, Move para a tela anterior
STOP Para uma operação em curso
STOP,
HELP, Mostra instruções
SCREEN, Tipo genérico para ações específicas da
aplicação
EXIT,, Sai da aplicação
p ç
ITEM, Indica que o botão está associado à um item na tela
Prof. Dany S. Dominguez/dany@labbi.uesc.br Tema 2 – Slide 17
A classe Command
• O posicionamento e apresentação dos
comandos é dependente da implementação,
implementação
• No emulador WTK e em muitos dispositivos,
comandos são associados aos dois soft
buttons,,
• Mas, só existem DOIS soft buttons...
• E se existirem mais comandos do que soft
buttons?
• Então, um comando será associado à um
botão e os demais comandos serão
agrupados em um menu.
Prof. Dany S. Dominguez/dany@labbi.uesc.br Tema 2 – Slide 18
A classe Command
• Quem ficará com um soft button e quem irá para
o menu?
• Depende da combinação de:
Prioridade + Tipo + Ordem de Inserção,
Inserção
• A prioridade indica a importancia que da o
desenvolvedor a um determinado comando,
comando
• Um valor baixo (1) indica maior importancia que
um valor
l alto
l (5),
(5)
• O AMS pode ignorar as prioridades se detectar
conflitos,
• Não temos controle absoltuo sobre como os
comandos serão colocados em um dispositivo.
Prof. Dany S. Dominguez/dany@labbi.uesc.br Tema 2 – Slide 19
Eventos em J2SE
•Qualquer
Q l objeto
bj t capaz •Qualquer
Q l objeto
bj t que •Um
U conjunto
j t d
de
de gerar um evento e implemente a métodos abstratos
registrar objetos listener interface listener e que processam os
•Multicast
M lti t Event
E t Source
S que tenha
t h interesse
i t eventos
t gerados
d por
•Capaz de adicionar em processar o objetos Event Source
vários escutadores evento
•AddListener()
• Um objeto
j Displayable
p y dispara
p um evento toda
vez que um de seus comandos é acionado.
Prof. Dany S. Dominguez/dany@labbi.uesc.br Tema 2 – Slide 21
A classe Command + Listener
• Sempre que utilizamos instancias da classe
Command devemos implementar uma interface
CommandListener,
• O CommandListener
C dLi t é notificado
tifi d quando
d o
usuário aciona um comando,
• Neste caso, o AMS chama o método
commandAction(),
• O método commandAction() recebe dois
parâmetros:
uma instancia da classe Command
uma instancia da classe Displayable
Prof. Dany S. Dominguez/dany@labbi.uesc.br Tema 2 – Slide 22
A classe Command + Listener
• No corpo do commandAction() colocamos as
instruções para:
identificar o comando que realizou o evento,
realizar o processamento do evento.
public
bli void
id commandAction(Command
d ti (C d command,
d
Displayable displayable){
if (
(command == exit){
){
destroyApp(true);
notifyDestroyed();
}
}
• Items
void setItemStateListener(ItemStateListener
itemstatelistener)
Alert(String
l t(St i titl
title, St
String
i msg, Image i
img,
AlertType alerttype)
• titl
title – título
tít l da
d janela,
j l
• msg – mensagem ao usuário,
• img – imagem que aparece na janela
(opc o a )
(opcional)
• alerttype - o tipo da alerta, define o som a ser
emitido pelo alerta.
alerta
Prof. Dany S. Dominguez/dany@labbi.uesc.br Tema 2 – Slide 40
A classe Alert
• Tipos de alerta:
Tipo Descrição
ALARM Uma requisição foi recebida
CONFIRMATION Um evento ou processamento foi finalizado
ERROR Um erro foi encontrado
INFO Uma informação é mostrada
WARNING Um erro potencial podera acontecer
• Um objeto
j ChoiceGrouppppode aparecer
p em dois
formatos (Choice Type):
EXCLUSIVE – uma única escolha é possível,
possível os
elementos são mostrados como radio buttons,
MULTIPLE – várias árias escolhas são permitidas
(inclusive zero), elementos são mostrados como
check boxes.
Prof. Dany S. Dominguez/dany@labbi.uesc.br Tema 2 – Slide 51
A classe ChoiceGroup
p
• Para recuperar as escolhas do usuário utilizamos
os métodos getSelectedFlags() e getSelectedIndex(),
• getSelectedFlags():
retorna um vetor booleano contendo o estado de
cada membro do ChoiceGroup,
o vetor deve ser percorrido para determinar as
opções selecionadas,
pode ser utilizados com check boxes e radio groups.
• Exemplos:
DateField datefield = new DateField("Today",
DateField.DATE);
int getInputMode()
• label
l b l - texto
t t dod rótulo
ót l do
d objeto,
bj t
• interactive - modo de interação
true - o usuário pode alterar o valor corrente
false - o usuário não pode alterar o valor
corrente
• maxValue -valor máximo do intervalo
• iniValue -valor
valor inicial do Gauge
Prof. Dany S. Dominguez/dany@labbi.uesc.br Tema 2 – Slide 62
A classe Gauge
• Tipos possíveis:
Interativo
Intervalo definido
Não interativo Incremental
Intervalo indefinido
C tí
Contínuo
• Interativo:
Escala que permite a interação do usuário
O usuário ajustando o som do dispositivo
Método
é
commandAction(Comand c, Displayable d)
itemStateChange(Item i)
CommandAction(Comand c, Item i)
• O atributo text p
pode ser modificado p
pelo método
void setString(String text)
Prof. Dany S. Dominguez/dany@labbi.uesc.br Tema 2 – Slide 86
A classe Ticker
• Um ticker é um atributo de um objeto
Displayable,
Displayable
• Para associar um ticker a um objeto usamos o
método
void setTicker(Ticker ticker)