Java ME Elementos da interface gráfica Form Aula 3 Marcio Seiji Oyamada
Relembrando o diagrama de classes Page 56
Form Interface onde são adicionados objetos do tipo Item StringItem Campos de texto Rótulos Check box Layout: gerenciar o posicionamento dos elementos Padrão: Posicionar os elementos na mesma linha posicionar os elementos da esquerda para a direita Posicionar os elementos de cima para baixo Quebras de linha setlayout(layout_newline_before) Page 57 setlayout(layout_newline_after)
Form: Exemplo public class MidletStringItem extends MIDlet { Display d; Form f= new Form("Teste StringItem"); public void startapp() { try { d = Display.getDisplay(this); f.append("este é um form"); f.append("posso colocar n elementos"); f.append(image.createimage("/test.png")); d.setcurrent(f); } catch (IOException ex) { ex.printstacktrace(); } } Page 58
Form Page 59
Item - StringItem Rótulo de texto não editável Tipos de rótulo PLAIN: Aparência normal no dispositivo HYPERLINK: aparece como um link BUTTON: aparece como um botão StringItem: rótulos na tela Construtor: StringItem(String label, String text); settext gettext Page 60
StringItem exemplo public class MidletStringItem extends MIDlet { StringItem sitem1= new StringItem("Label1", "Teste"); StringItem sitem2= new StringItem("Label2", "Teste"); StringItem sitem3= new StringItem("Label3", "Teste"); Display d; Form f= new Form("Teste StringItem"); public void startapp() { d=display.getdisplay(this); f.append(sitem1); f.append(sitem2); f.append(sitem3); d.setcurrent(f); } public void pauseapp() { } } Page 61 public void destroyapp(boolean unconditional) { }
StringItem tela Page 62
Item- TextField String editável Construtor public TextField(String label, String text, int maxsize, int constraints) Constraints ANY NUMERIC DECIMAL PHONENUMBER EMAILADDR URL Page 63
Item -DateField DateField Componentes para entrada de datas Caixas para entrada dos dados são abertos Construtor public DateField(String Label, DateField type) Podem ser de 3 tipos: DATE: entrada para data (dia,mês e ano) TIME: entrada de tempo (horas e minutos) DATE_TIME: ambos tipos de entradas Page 64
Item- ChoiceGroup ChoiceGroup Construtor: ChoiceGroup(String title, ChoiceGroup type, String[] item, Images[] images) Podem ser de 3 tipos: EXCLUSIVE: uma seleção por vez (radiobutton) MULTIPLE: permite várias seleções por vez(check button) POPUP: opções flutuantes (combo box). Page 65
Item -Gauge Gauge Representar valores inteiros Progresso de uma aplicação Valores de uma aplicação Podem ser interativas ou não: o MIDP decide como será a entrada de dados Construtor: Gauge(String title, boolean interativa não interativo, int valormáximo INDEFINITE,valor inicial) Page 66
Gauge Tipos de valores Valores especiais: INCREMENTAL_UPDATING: indica que uma operação foi realizada e o gauge precisa refletir essa informação INCREMENTAL_IDLE: gauge incremental porém indicando que nada está acontecendo CONTINUOUS_RUNNING: gauge contínuo, indicando progressão execução CONTINUOUS_IDLE: gauge contínuo, indicando que não esta ocorrendo nenhum progresso A representação é dependente da implementação Page 67
Gauge: Exemplo Page 68
Gauge: Código public class MidletStringItem extends MIDlet { Form f= new Form("Teste StringItem"); Gauge gint= new Gauge("Gauge interativo", true, 10,1); Gauge gn1= new Gauge("Gauge não-i", false, Gauge.INDEFINITE, Gauge.CONTINUOUS_IDLE); Gauge gn2= new Gauge("Gauge não-i", false, Gauge.INDEFINITE, Gauge.CONTINUOUS_RUNNING); Gauge gn3= new Gauge("Gauge não-i", false, Gauge.INDEFINITE, Gauge.INCREMENTAL_IDLE); Gauge gn4= new Gauge("Gauge não-i", false, Gauge.INDEFINITE, Gauge.INCREMENTAL_UPDATING); Command c= new Command("Go",Command.OK, 0); public void startapp() { d = Display.getDisplay(this); f.addcommand(c); f.append(gint); f.append(gn1); f.append(gn2); f.append(gn3); f.append(gn4); d.setcurrent(f); f.setcommandlistener(new CommandListener(){ public void commandaction(command arg0, Displayable arg1) { gn4.setvalue(gauge.incremental_updating); } }); } Page 69
Comandos em Form A maioria dos itens em um Form geram um evento quando alterados. Um ItemStateListener pode ser cadastrado para responder captar os eventos em um form Método abstrato: itemstatechanged(item item) Retorna qual o item foi alterado o estado Ideal para o uso com Gauges e ChoiceGroup Page 70
Exercício 1) Reescrever o código do cálculo de pedágios, utilizando um Form 2) Implementar um Midlet para entrada dos seguintes dados: - Nome - Endereço - Telefone - Email - Data de Nascimento Page 71
Java ME Propriedades Aula 4 Marcio Seiji Oyamada
Propriedades Específicas para a aplicação Definidas no arquivo jad Propriedades do sistema Page 73
Propriedades da aplicação Par: chave valor getappproperty(string key) Ex: String name; name= getappproperty( MIDlet-Name ); Page 74
Propriedades do sistema System.getProperty(String key) microedition.platform microedition.configuration microedition.profiles Ex: String s; s= System.getProperty( microedition.profiles ); Page 75
Acessando os serviços do MIDlet Método da classe MIDlet platformrequest(string URL) Ex: http://www.google.com (browser do dispositivo) Ex: tel:99000000 (aplicação de chamada de voz do telefone) O MIDlet poder ser finalizado pois não suporta a execução concorrente. Para isso, ele invocará o método destroyapp(true) Page 76
Exercício Desenvolva um MIDlet para apresentar na tela as seguintes propriedades MIDlet-Name Uma propriedade definida no JAD microedition.platform microedition.configuration microedition.profiles Page 77