GRAPHICAL USER INTERFACE
MIDlets MIDlets
MIDlets
MIDlets
Display Display
RepresentaRepresenta o o gerenciadorgerenciador do display e de do display e de
dispositivos
dispositivos de de entradaentrada..
PossuiPossui métodosmétodos parapara obterobter propriedadespropriedades do do
dispositivo
dispositivo e e parapara exibirexibir objetosobjetos no display.no display. dispositivo
dispositivo e e parapara exibirexibir objetosobjetos no display.no display.
ExisteExiste apenasapenas umauma instânciainstância de Display de Display porpor
MIDlet MIDlet..
PodePode ser ser obtidoobtido atravésatravés do do métodométodo
Display.getDisplay Display.getDisplay().().
Display
Display –– AlgunsAlguns MétodosMétodos
flashBackLightflashBackLight((intint duracaoduracao) ) requisitarequisita um um
efeito
efeito de flashing no visor do de flashing no visor do dispositivodispositivo
isColorisColor() () retornaretorna se o display é se o display é coloridocolorido
numColorsnumColors() () retornaretorna o o númeronúmero de coresde cores
numColorsnumColors() () retornaretorna o o númeronúmero de coresde cores
vibrate(vibrate(intint duracaoduracao) ) vibravibra o o dispositivodispositivo
setCurrentsetCurrent(Displayable d) (Displayable d) modificamodifica a a telatela
atual atual
Displayable Displayable
ElementoElemento queque podepode ser ser exibidoexibido no Display.no Display.
PodePode conterconter::
Um Um títulotítulo Um “ticker”Um “ticker” Um “ticker”Um “ticker”
Zero Zero ouou maismais comandoscomandos parapara interaçãointeração com o com o
usuário
usuário atravésatravés de um listener (de um listener (CommandListenerCommandListener).).
No MIDP No MIDP podempodem ser:ser:
ScreenScreen
Displayable Displayable
ModificarModificar o o conteúdoconteúdo do display: do display: passandopassando
objetos
objetos Displayable Displayable aoao Display.setCurrentDisplay.setCurrent(). ().
SequênciaSequência normalnormal
ExibeExibe um Displayable no displayum Displayable no display
ExibeExibe um Displayable no displayum Displayable no display
AguardaAguarda porpor entradaentrada do do usuáriousuário
EscolheEscolhe a a próximapróxima telatela a a exibirexibir
Displayable
Displayable Screen Screen
ClasseClasse abstrataabstrata parapara UI de UI de alto alto nívelnível..
SeuSeu conteúdoconteúdo e e interaçãointeração devemdevem ser ser definidosdefinidos
pelas
pelas subclassessubclasses
ExistemExistem quatroquatro subclasses subclasses definidasdefinidas::
ExistemExistem quatroquatro subclasses subclasses definidasdefinidas::
AlertAlert FormForm ListList TextBoxTextBox
Displayable
Displayable Screen Screen TextBoxTextBox
É o Screen É o Screen queque permitepermite aoao usuáriousuário entrarentrar e e
editar
editar textotexto..
PossuiPossui um um títulotítulo, , textotexto, , tamanhotamanho máximomáximo e e
restrições restrições.. restrições restrições..
RestriçõesRestrições ((atravésatravés dada classeclasse TextFieldTextField):):
ANY ANY –– QualquerQualquer caracterecaractere
EMAILADDR EMAILADDR –– EndereçoEndereço de emailde email
NUMERIC NUMERIC –– NúmerosNúmeros inteirosinteiros
PHONENUMBER PHONENUMBER –– TelefoneTelefone
Displayable
Displayable Screen Screen TextBoxTextBox protected void startApp() throws
MIDletStateChangeException {
if (display==null) {
display = Display.getDisplay(this);
}
TextBox textBox = new
TextBox textBox = new
TextBox("Título","Texto",10,TextField.ANY);
display.setCurrent(textBox);
Displayable
Displayable
Displayable Screen Screen List List
Um Screen Um Screen contendocontendo umauma listalista de String e de String e
Images. Images.
PodePode ser ser criadocriado com com osos tipostipos (Choice): (Choice):
EXCLUSIVE EXCLUSIVE –– UsuárioUsuário selecionaseleciona apenasapenas um um
EXCLUSIVE EXCLUSIVE –– UsuárioUsuário selecionaseleciona apenasapenas um um
elemento elemento..
IMPLICIT IMPLICIT –– UsuárioUsuário selecionaseleciona apenasapenas um um elementoelemento, ,
que
que notificanotifica um listener.um listener.
MULTIPLE MULTIPLE –– UsuárioUsuário selecionaseleciona zero, um zero, um ouou maismais
elementos
Displayable
Displayable Screen Screen List List protected void startApp() throws
MIDletStateChangeException {
if (display==null) {
display = Display.getDisplay(this);
}
List list = new List("Clubes",
ChoiceGroup.IMPLICIT,new
String[]
{"Sport","Náutico","Santa Cruz"},
null);
display.setCurrent(list);
Displayable
Displayable Screen Screen AlertAlert
Um Screen Um Screen queque exibeexibe dados dados parapara o o usuáriousuário e e
aguarda
aguarda porpor um tempo um tempo ouou eventoevento antes de antes de exibirexibir o
o próximopróximo Displayable.Displayable.
PodePode conterconter textotexto e e imagemimagem..
PodePode conterconter textotexto e e imagemimagem..
Alert.setTimeoutAlert.setTimeout((intint timeout)timeout)
Alert.Alert.FOREVERFOREVER AlertaAlerta modal, modal, aguardaaguarda atéaté o o
usuário
usuário pressionarpressionar algumalgum comandocomando..
CasoCaso contráriocontrário AguardaAguarda o tempo o tempo especificadoespecificado
pelo
Displayable
Displayable Screen Screen AlertAlert
PossuiPossui osos atributosatributos::
TítuloTítulo, , TextoTexto, , ImagemImagem, , TipoTipo de de alertaalerta ((AlertTypeAlertType))
AlertTypeAlertType::
INFO INFO IndicaIndica a a exibiçãoexibição de de informaçõesinformações
INFO INFO IndicaIndica a a exibiçãoexibição de de informaçõesinformações
WARNING WARNING IndicaIndica queque a a operaçãooperação podepode ser ser
perigosa perigosa
ERROR ERROR ErroErro durantedurante a a operaçãooperação
ALARM ALARM AlertaAlerta a a respeitorespeito de de algumalgum eventoevento
Displayable
Displayable Screen Screen AlertAlert
protected void startApp() throws MIDletStateChangeException {
if (display==null) {
display = Display.getDisplay(this);
}
List list = new List("Clubes",ChoiceGroup.IMPLICIT,new String[] {"Sport","Náutico","Santa Cruz"}, null);
Alert alert = new Alert("Erro","Erro na conexão com o servidor!", null, AlertType.ERROR);
alert.setTimeout(5000);
display.setCurrent(alert, list);
Displayable
Displayable Screen Screen AlertAlert
Displayable
Displayable Screen Screen FormForm
Screen Screen queque contémcontém váriosvários ítensítens..
ÍtensÍtens sãosão::
InterativosInterativos
ChoiceGroupChoiceGroup ((semelhantesemelhante aoao List)List)
DateFieldDateField ((exibeexibe data e/data e/ouou horahora))
Gauge (Gauge (barrabarra de de progressoprogresso) () (interativainterativa))
TextFieldTextField ((semelhantesemelhante aoao TextBoxTextBox))
NãoNão InterativosInterativos
ImageItemImageItem ((exibeexibe umauma imagemimagem))
StringItemStringItem ((exibeexibe um label)um label)
Displayable
Displayable Screen Screen FormForm
EmEm se se tratandotratando de GUI de alto de GUI de alto nívelnível, , apenasapenas o Form o Form
possibilita
possibilita múltiplosmúltiplos ítensítens nana telatela..
ConstrutoresConstrutores::
Form(String Form(String tituloForm(String tituloForm(String titulo) titulo) ) ) cria cria cria um form cria um form um form semum form semsem nenhumsem nenhumnenhum ítemnenhum ítemítemítem
Form(String Form(String titulotitulo, Item[] , Item[] itensitens) ) criacria um form com o um form com o títulotítulo
e
e osos ítensítens passadospassados
MétodosMétodos principaisprincipais::
append append adicionaadiciona um um ítemítem aoao formform
delete delete remove um remove um ítemítem do formdo form
Form
Form -- ItemItem
ClasseClasse abstrataabstrata parapara osos componentescomponentes queque podempodem ser ser
adicionados
adicionados aoao Form.Form.
TodosTodos osos ítensítens contémcontém um label, um label, queque geralmentegeralmente
exibidos
exibidos pertoperto do do componentecomponente no display.no display. exibidos
exibidos pertoperto do do componentecomponente no display.no display.
O label O label devedeve ser ser exibidoexibido nana mesmamesma linhalinha queque o o
componente
componente ouou emem cimacima dele.dele.
Subclasses: Subclasses: ChoiceGroupChoiceGroup, , StringItemStringItem, , TextFieldTextField, ,
Gauge,
Item
Item StringItemStringItem
Um Um ítemítem queque contémcontém umauma StringString
NãoNão podepode ser ser editadoeditado (é um Label)(é um Label)
TantoTanto o label o label quantoquanto a string a string podempodem ser ser
modificados
modificados pelapela aplicaçãoaplicação modificados
modificados pelapela aplicaçãoaplicação
O visual do label O visual do label podepode ser ser diferentediferente do visual do do visual do
conteúdo
Item
Item StringItemStringItem protected void startApp() throws
MIDletStateChangeException {
if (display==null) {
display = Display.getDisplay(this);
}
Form form = new Form("Futebol");
StringItem string = new
StringItem("","Campeonato Pernambucano de Futebol");
form.append(string);
display.setCurrent(form); }
Item
Item ChoiceGroupChoiceGroup
GrupoGrupo de de elementoselementos queque podempodem ser ser
selecionados
selecionados. . SóSó podempodem ser ser usadosusados DENTRO DENTRO de um Form (
de um Form (aoao contráriocontrário do List).do List).
PodePode ser ser criadocriado de forma a de forma a possibilitarpossibilitar queque sejaseja
PodePode ser ser criadocriado de forma a de forma a possibilitarpossibilitar queque sejaseja
selecionado selecionado: :
apenasapenas um um elementoelemento ((comocomo radio button)radio button)
Item
Item ChoiceGroupChoiceGroup (EXCLUSIVE)(EXCLUSIVE) protected void startApp() throws
MIDletStateChangeException {
if (display==null) {
display = Display.getDisplay(this);
}
Form form = new Form("Futebol");
ChoiceGroup choice = new
ChoiceGroup("Clubes",ChoiceGroup.EXCLUSIVE
,new String[] {"Sport","Náutico","Santa Cruz"}, null);
form.append(choice);
display.setCurrent(form); }
Item
Item ChoiceGroupChoiceGroup (POPUP)(POPUP) protected void startApp() throws
MIDletStateChangeException {
if (display==null) {
display = Display.getDisplay(this);
}
Form form = new Form("Futebol");
ChoiceGroup choice = new
ChoiceGroup("Clubes",ChoiceGroup.POPUP,new
String[] {"Sport","Náutico","Santa Cruz"},
null);
form.append(choice);
display.setCurrent(form); }
Item
Item ChoiceGroupChoiceGroup (POPUP)(POPUP) protected void startApp() throws
MIDletStateChangeException {
if (display==null) {
display = Display.getDisplay(this);
}
Form form = new Form("Futebol");
ChoiceGroup choice = new
ChoiceGroup("Clubes",ChoiceGroup.POPUP,new
String[] {"Sport","Náutico","Santa Cruz"},
null);
form.append(choice);
display.setCurrent(form); }
Item
Item ChoiceGroup ChoiceGroup (MULTIPLE)(MULTIPLE) protected void startApp() throws
MIDletStateChangeException {
if (display==null) {
display = Display.getDisplay(this);
}
Form form = new Form("Futebol");
ChoiceGroup choice = new
ChoiceGroup("Clubes",ChoiceGroup.MULTIPLE, new String[] {"Sport","Náutico","Santa
Cruz"}, null);
form.append(choice);
display.setCurrent(form); }
ChoiceGroup
ChoiceGroup != List!= List
protected void startApp() throws
MIDletStateChangeException {
if (display==null) {
display = Display.getDisplay(this);
}
Form form = new Form("Futebol");
ChoiceGroup choice = new
ChoiceGroup choice = new
ChoiceGroup("Clubes",ChoiceGroup.MULTIPLE,new String[] {"Sport","Náutico","Santa Cruz"}, null);
form.append(choice);
StringItem string = new StringItem("","Campeonato Pernambucano de Futebol");
form.append(string);
display.setCurrent(form); }
Item
Item TextFieldTextField
ComponenteComponente editáveleditável queque podepode ser ser adicionadoadicionado
ao
ao Form.Form.
PodePode conterconter um um textotexto usadousado comocomo valor valor inicialinicial..
IgualIgual aoao TextBoxTextBox? ?
IgualIgual aoao TextBoxTextBox? ?
DifereDifere do do TextBoxTextBox poispois precisaprecisa estarestar dentrodentro de um de um
Form
Form parapara existirexistir..
PorémPorém é é semelhantesemelhante visualmentevisualmente e e emem caracteríscascaracteríscas
como
Item
Item TextFieldTextField protected void startApp() throws
MIDletStateChangeException {
if (display==null) {
display = Display.getDisplay(this);
}
Form form = new Form("Futebol");
TextField textField = new TextField("Clube de Preferência","",50, TextField.ANY);
form.append(textField);
display.setCurrent(form); }
Item
Item ImageItemImageItem
ComponenteComponente queque possuipossui referênciareferência à à umauma
imagem
imagem, , parapara ser ser adicionadoadicionado aoao Form.Form.
PodePode se se mutávelmutável ouou imutávelimutável
PermitePermite queque sejaseja determinadodeterminado o local o local dada imagemimagem::
PermitePermite queque sejaseja determinadodeterminado o local o local dada imagemimagem::
LAYOUT_CENTER LAYOUT_CENTER -- horizontalmente centralizadahorizontalmente centralizada
LAYOUT_DEFAULT LAYOUT_DEFAULT -- default, de default, de acordo com o containeracordo com o container
LAYOUT_LEFT LAYOUT_LEFT -- lado esquerdo da telalado esquerdo da tela
LAYOUT_NEWLINE_AFTER LAYOUT_NEWLINE_AFTER -- uma nova linha é criada após a imagemuma nova linha é criada após a imagem
LAYOUT_NEWLINE_BEFORE LAYOUT_NEWLINE_BEFORE -- uma nova linha é criada antes da imagemuma nova linha é criada antes da imagem
Item
Item ImageItemImageItem
protected void startApp() throws
MIDletStateChangeException {
if (display==null) {
display = Display.getDisplay(this);
}
Form form = new Form("Exibindo Imagem");
Image image = null;
try {
try {
image = Image.createImage("/java.png");
} catch (IOException e) {
e.printStackTrace(); }
ImageItem imageItem = new ImageItem("Java Logo",image,ImageItem.LAYOUT_CENTER,"(Java Logo)");
form.append(imageItem); display.setCurrent(form); }
Ticker Ticker
TODOSTODOS osos DisplayablesDisplayables têmtêm um um títulotítulo e um e um
Ticker
Ticker opcionalopcional..
Um Ticker é Um Ticker é apenasapenas um um textotexto queque ““andaanda” ”
continuamente
continuamente pelopelo Display.Display. continuamente
continuamente pelopelo Display.Display.
DireçãoDireção e e velocidadevelocidade sãosão dependentesdependentes de de
implementação
implementação ((cadacada fabricantefabricante//modelomodelo podepode diferir
diferir).).
É É exibidoexibido atravésatravés do do métodométodo setTickersetTicker do do
Displayable. Displayable.
Ticker Ticker
protected void startApp() throws
MIDletStateChangeException {
if (display==null) {
display = Display.getDisplay(this);
}
Form form = new Form("Exibindo Imagem");
Image image = null;
try {
try {
image = Image.createImage("/java.png");
} catch (IOException e) {
e.printStackTrace(); }
ImageItem imageItem = new ImageItem("Java
Logo",image,ImageItem.LAYOUT_CENTER,"(Java Logo)");
form.append(imageItem);
form.setTicker(new Ticker(“Exemplo de utilização de um Ticker”);
display.setCurrent(form); }
Ticker Ticker