A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Seminários.reply JavaME César Delmas – Hially Sá –

Apresentações semelhantes


Apresentação em tema: "Seminários.reply JavaME César Delmas – Hially Sá –"— Transcrição da apresentação:

1 Seminários.reply JavaME César Delmas – cadcn@cin.ufpe.br Hially Sá – hrs@cin.ufpe.br

2 Agenda Arquitetura (Revisão) MIDlet (Revisão) Hierarquia de classes Screen Eventos

3 Arquitetura - Configurações Parte “low level” Define requisitos de hardware Especificação para JVM Geralmente divide os dispositivos segundo memória, poder de processamento, display, conectividade Exemplos:  CLDC (Connected Limited Device Configuration)  CDC (Connected Devide Configuration)

4 Arquitetura - Profiles Parte “high level” Extensão da configuração Provê bibliotecas para implementação de aplicações para um dado tipo de dispositivo Exemplo:  MIDP ( Mobile Information Device Profile )

5 Arquitetura – Pacotes Opcionais acho q a gente pode melhorar esse slide Pacotes opcionais  CLDC ou CDC  Específicos  Modulares  Exemplos Conexão com BD, Envio de mensagens, Webservices, Bluetooth, Multimídia, kSOAP, kXML, Mail4ME...

6 Arquitetura - Esquemático

7 MIDlet - Conceitos Midlets são aplicações móveis em Java Classe abstrata a ser implementada

8 MIDlet - Estrutura import javax.microedition.midlet.MIDlet; public class helloWorld extends MIDlet { public helloWorld () { System.out.println("helloWorld()"); } protected void startApp() { System.out.println("startApp()"); } protected void pauseApp() { System.out.println("pauseApp()"); } protected void destroyApp(boolean arg0) { System.out.println("destroyApp()"); }

9 MIDlet – Ciclo de Vida

10 MIDP – Hierarquia de classes

11 Display Gerenciador de tela que controla o que é mostrado no dispositivo e quando Recupera informações sobre a tela atual (cores suportadas, resolução, etc) Objeto único para cada MIDlet Não é instanciado

12 Usando o Display public class DisplayStats extends MIDlet { private Display display; // construtor public DisplayStats() { display = Display.getDisplay(this);... }... }

13 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 ()

14 Display – métodos principais int numColors()  Retorna o número de cores disponíveis boolean vibrate(int duration)  Ordena ou não a vibração do aparelho(midp 2.0) boolean flashBackLight(int duration)  Ordena ou não que a luz do aparelho acenda(midp 2.0)

15 Displayable Objeto que pode ser visto num dispositivo  Screen Objetos Displayable para Interface alto nível  Canvas Objetos Displayable para Interface baixo nível

16 Displayable Screen  TextBox  List  Alert  Form (ChoiceGroup, DateField, TextField, Gauge, ImageItem, StringItem)  OBS: ticker – variável que pode estar ou não num Displayable;

17 TextBox - Conceitos Caixa de texto que permite filtragem para certos tipos de caracteres Semelhante a TextField Não herda de Item, ao contrário de TextField

18 TextBox - Métodos 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()

19 TextBox - Exemplo public class classeJavaME extends MIDlet{ private Display display; private TextBox tb; // Construtor public classeJavaME() { display = Display.getDisplay(this); tb = new TextBox("",“Exemplo - TextBox",11,0); } // seta o display protected void startApp() { this.display.setCurrent(tb); }

20 TextBox - Protótipos

21 List - Conceitos Implementa a interface Choice Screen utilizados para mostrar uma lista de opções Tipos:  ECLUSIVE  MULTIPLE  IMPLICIT (Não tem em ChoiceGroup)

22 List - Métodos 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()

23 List - Exemplo public class classeJavaME extends MIDlet{ private Display display; private List list; // Construtor public classeJavaME() { display = Display.getDisplay(this); list = new List(“Exemplo - Lista",“List.IMPLICIT",11,0); this.list.append("carro",null); this.list.append("navio",null); this.list.append("aviao",null); } // seta o display protected void startApp() { this.display.setCurrent(list); }

24 List - Protótipo

25 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

26 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)

27 Alert

28 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

29 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

30 Alert - Exemplo public class classeJavaME extends MIDlet{ private Display display; private Alert alert; private Form form = new Form(“Formulário”); // Construtor public classeJavaME() { display = Display.getDisplay(this); alert = new Alert("Alerta","Perigo!!!", null, AlertType.WARNING); alert.setTimeout(3000); } // seta o display protected void startApp() { this.display.setCurrent(alert, form); } … }

31 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)

32 Ticker - Exemplo public class classeJavaME extends MIDlet{ private Display display; private Form form = new Form(“Formulário”); private Ticker testTicker; // Construtor public classeJavaME() { display = Display.getDisplay(this); ticker = new Ticker("Teste Ticker"); form.setTicker(testTicker); } // seta o display protected void startApp() { this.display.setCurrent(form); } … }

33 Ticker - Protótipo

34 Form Item  ChoiceGroup,  DateField,  TextField,  Gauge,  ImageItem,  StringItem

35 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  Tipos: EXCLUSIVE e MULTIPLE

36 ChoiceGroup - Métodos 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)

37 ChoiceGroup - Exemplo public class classeJavaME extends MIDlet{ private Display display = Display.getDisplay(this); private Form form = new Form(“Formulário”); private ChoiceGroup choice = new ChoiceGroup("Choice",Choice.EXCLUSIVE); // Construtor public classeJavaME() { choice.append("choice 1", null); choice.append("choice 2", null); choice.append("choice 3", null); form.append(choice); } // seta o display protected void startApp() { this.display.setCurrent(form); }… }

38 ChoiceGroup - Protótipo

39 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)

40 Datefield - Exemplo public class classeJavaME extends MIDlet{ private Display display = Display.getDisplay(this); private Form form = new Form(“Formulário”); // Construtor public classeJavaME() { DateField df = new DateField("Data: ", DateField.DATE); Date dataAtual = new Date(); df.setDate(dataAtual); form.append(df); } // seta o display protected void startApp() { this.display.setCurrent(form); } … }

41 DateField - Protótipo

42 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

43 TextField - Métodos 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

44 TextField - Exemplo public class classeJavaME extends MIDlet{ private Display display = Display.getDisplay(this); private Form form = new Form(“Formulário”); // Construtor public classeJavaME() { TextField tf = new TextField("Texto", "Oi", 30, TextField.ANY); form.append(tf); } // seta o display protected void startApp() { this.display.setCurrent(form); } … }

45 TextField - Protótipo

46 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

47 Gauge – Métodos 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  Boolean isInteractive() – Verifica se é interativo

48 Gauge - Exemplo public class classeJavaME extends MIDlet{ private Display display = Display.getDisplay(this); private Form form = new Form(“Formulário”); // Construtor public classeJavaME() { Gauge gauge = new Gauge(“Gauge", true, 50, 11); form.append(gauge); } // seta o display protected void startApp() { this.display.setCurrent(form); } … }

49 Gauge - Protótipo

50 Image - Conceito 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.

51 ImageItem - Conceitos Possibilita a exibição de uma imagem em um objeto Form. A exibição depende da implementação do fabricante do dispositivo.

52 ImageItem - Métodos Métodos principais  ImageItem(String label, Image img, int layout, String altText)  void setImage(Image img)  void setLayout(int layout)

53 ImageItem – Exemplo public class classeJavaME extends MIDlet{ private Display display = Display.getDisplay(this); private Form form = new Form(“Formulário”); // Construtor public classeJavaME() { try { Image image = Image.createImage("/java.png"); ImageItem item = new ImageItem(null, image, ImageItem.LAYOUT_CENTER, null); form.append(item); } catch (IOException e) { e.printStackTrace(); } // seta o display protected void startApp() { this.display.setCurrent(form); }…}

54 ImageItem - Protótipo

55 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

56 StringItem - Exemplo public class classeJavaME extends MIDlet{ private Display display = Display.getDisplay(this); private Form form = new Form(“Formulário”); // Construtor public classeJavaME() { StringItem si = new StringItem("String :", "texto"); form.append(si); } // seta o display protected void startApp() { this.display.setCurrent(form); } … }

57 Alternativa ao StringItem... private Form fmMain; int i = fmMain.append(“Login: cesps”);... StringItem tmp = (StringItem) fmMain.get(i);...

58 Quadro geral - eventos Eventos são essenciais para MIDlets, pois são chave para interatividade Para gerenciarmos um evento:  Hardware reconhece o evento físico  software é notificado do evento  evento é tratado pelo programador

59 Objetos Command Contém informações sobre um evento Podem ser considerados como “botões”  Soft keys  Teclas O processo de eventos 1.Criação do Objeto Command 2.Adicionar o comando a um displayable 3.Adicionar um receptor (listener) ao displayable

60 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

61 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

62 Command - Exemplo private Form fmMain; private Command cmExit; fmMain = new Form(“Formulário");... cmExit = new Command("Exit", Command.EXIT, 1); // 1º passo... fmMain.addCommand(cmExit); //2º passo fmMain.setCommandListener(this); // 3º passo... public void commandAction(Command c, Displayable s) { if (c == cmExit) { destroyApp(true); notifyDestroyed(); }

63 Exercitando... 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


Carregar ppt "Seminários.reply JavaME César Delmas – Hially Sá –"

Apresentações semelhantes


Anúncios Google