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

Slides:



Advertisements
Apresentações semelhantes
Exemplos de código WebForm1.aspx: Listas.aspx: TestaMarcadores.aspx:
Advertisements

APLICAÇÕES DE LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS COMPONENTES GUI – PARTE I Prof. Thiago Pereira Rique
PHPOO Erick Souza. Conceitos de Orientação a Objetos Objeto é um conceito ou item(concreto ou abstrato). Software orientado a objetos Uma classe é uma.
UML Visões – Parte 2.
Prof. Thiago Pereira Rique
14.6  Campos de texto e uma introdução ao tratamento de eventos com classes aninhadas Um usuário interage com uma GUI para indicar as tarefas que o aplicativo.
Formulários Um formulário é um modelo para a entrada de um conjunto de dados. O elemento delimita um formulário e contém uma seqüência de elementos de.
Orientação a Objetos: Encapsulamento e Classificação
Java: Pacotes e Modificadores de Visibilidade
Java: Pacotes e Modificadores de Visibilidade
Programação Concorrente
Wagner Santos C. de Jesus
Tutorial I: Criando a interface de uma aplicação em Java
Aula de reposição Prof. Grace e Ângela
Estrutura de Dados em Java
Componentes GUI GUI – Grafical User Interface – São construídas a partir de componentes GUI chamados de controles ou widgets (windows gadgets – engenhocas.
CRIANDO OBJETOS EM JAVA
Curso de extensão em Desenvolvimento Web
Prof. Afonso Ferreira Miguel, MSc
Programação Orientada a Objetos com Java
Aula prática 13 Orientação a Objetos – C++ Parte 1
Singleton e Adapter Professor: Nazareno Andrade
J2ME Mini Curso.
Programação I Aula 2 (Métodos)
Linguagem de Programação JAVA
Introdução a aplicativos Java
Programa Expresso de Capacitação Módulo J2ME Aula 5 – Record Management System.
Programa Expresso de Capacitação Módulo J2ME
Programa Expresso de Capacitação Módulo J2ME Aula 4 – Interface de alto e baixo nível.
Enviando dados com interface Classe Form – é um repositório de controles, sendo que apenas um Form pode ser visto de cada vez. Cada objeto da classe Form.
Linguagem de Programação JAVA Técnico em Informática Professora Michelle Nery.
Orientação a Objetos Parte I
Pilhas Profa. Nádia Félix.
Aulas 2 e 3 – Java – Prof. Marcelo Heitor # O método main e argumentos na linha de comando; # Fluxo padrão de entrada e saída; # A classe JOptionPane;
POO Interface Gráfica - Swing
Orientação a Objetos usando Java
Classes Abstratas P. O. O. Prof. Ângela e Grace.
MINI CURSO J2ME Vinícius Maran SEMINÁRIO REGIONAL DE INFORMÁTICA 2008.
Curso básico j2me Bruno Pereira Carlos Santos
Programação para Web Unidade 06 – Java Beans e BDs Prof.: Henrique Santos.
1 Marcio de Carvalho Victorino JAVA. 2 Declaração de Atributos [ ] [transient] [volatile] [static] [final] ; controle de acesso –public, package (default),
Interfaces POO Avançado.
Estrutura de Controle em JAVA
Classes Abstratas e Interface
Introdução PLB-II (Java) – Prof. Alberto  Mais componentes da GUI.
Programação para Dispositivos Móveis Prof. Wallace Borges Cristo.
Copyright 1998, Departamento de Informática da UFPE. Todos os direitos reservados sob a legislação em vigor. Variáveis e métodos estáticos, Passagem de.
Faculdade Pitágoras – Campus Fadom.  Display  Cada MIDlet tem UMA referência para um objeto Display  Esse objeto pode recuperar informações sobre.
Jornada de Cursos - J2ME Aula 3 – MIDP. Pausa para reflexão "Sem esforço não há progresso, mas com esforço também não há progresso” Ryotan TokudaRyotan.
Bruno Inojosa MCP .NET Framework
Modificadores Programação II.
Programação Gráfica em Java Introdução
UNIVERSIDADE FEDERAL DE SANTA CATARINA CTC - CENTRO TECNOLÓGICO INE - DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA DISCIPLINA DE COMPUTAÇÃO COM OBJETOS DISTRIBUÍDOS.
Herança.
GOTO. Project treinamento expresso j2me Luiz Carlos d´Oleron lcadb at cin.ufpe.br.
UCSal – Bacharelado em Informática Tópicos Especiais em Informática II Profa. Semíramis Assis
Seminários.reply Introdução a JavaME Guilherme Carvalho.
Marlon Luz JavaME no mundo real: novas ferramentas Java para Série 40 da Nokia 1.
Faculdade Pitágoras – Campus Fadom.  Permite uma seleção à partir de um conjunto de opções  Método append permite adição de itens em seu conteúdo. 
Array e ArrayList LPOO – 01/09/14.
Curso Básico de Android
Faculdade Pitágoras – Campus Fadom.  A classe Form é utilizada para a criação de formulários que agregam conjuntos de itens (subclasse de Item), os.
CURSO JAVA BÁSICO Módulo 9 – slide 1 Módulo 10 Threads.
ASP.NET Passo a Passo Controles com Processamento Personalizado Criando um controle personalizado 1. Abra ou copie a solução ControlORama desenvolvido.
Classes Abstratas e Interface. 2 Classe Abstrata  Uma classe abstrata serve apenas como modelo para uma classe concreta (classe que comumente usamos);
1 Interface (o termo) » Interface (a palavra reservada): Java estendeu o conceito de interfaces à um nível ainda mais flexível que permite construir entidades.
Laboratório de Computação Aula 06 e 07 – Implementação de classes Prof. Fábio Dias
Atividade ASP.NET Portal da Memoria Atividade Desenvolver uma aplicação ASP.NET com funcionalidade similar à existente no site centenário.ifrn.edu.br utilizando.
Web Services Conceitos e Tecnologias Amanda Modesto Suzanna Sandes.
Linguagem de Programação – Aula 04 Prof. Me. Ronnison Reges Vidal.
Transcrição da apresentação:

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

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

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)

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 )

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

Arquitetura - Esquemático

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

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()"); }

MIDlet – Ciclo de Vida

MIDP – Hierarquia de classes

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

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

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

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)

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

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

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

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

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); }

TextBox - Protótipos

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

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

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); }

List - Protótipo

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

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)

Alert

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

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

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); } … }

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)

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); } … }

Ticker - Protótipo

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

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

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)

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); }… }

ChoiceGroup - Protótipo

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)

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); } … }

DateField - Protótipo

TextField Caixa de texto para formulários Suporta múltiplas linhas Opção de filtrar a entrada de dados  CONSTRAINT_MASK  ANY  ADDR  NUMERIC  PASSWORD  PHONENUMBER  URL

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

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); } … }

TextField - Protótipo

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

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

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); } … }

Gauge - Protótipo

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.

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

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

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); }…}

ImageItem - Protótipo

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

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); } … }

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

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

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

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

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

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(); }

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