SlideShare uma empresa Scribd logo
1 de 65
Baixar para ler offline
Erisvaldo Gadelha Saraiva Júnior



Arquitetura de APIs Gráficas do JavaDTV

LWUIT e DTV-UI
                                         Erisvaldo Gadelha Saraiva Júnior
                                Laboratório de Aplicações de Vídeo Digital
                                     Departamento de Informática - UFPB
                                     Contato: erisvaldojunior@gmail.com
Objetivo
                         Expor a arquitetura de APIs Gráficas do JavaDTV: LWUIT e DTV-UI.
Organize with Sections




                                                                       Imagens       de     telas
                                                                       confeccionadas com o
                                                                       LWUIT      rodando     em
                                                                       dispositivos móveis.
Roteiro de Apresentação


APIs Gráficas         A API Gráfica             A API Gráfica
 do JavaDTV              LWUIT                     DTV-UI




            Arquitetura de APIs Gráficas do JavaDTV: LWUIT e DTV-UI
APIs Gráficas do JavaDTV



   Descrição arquitetural das APIs Gráficas do JavaDTV
Arquitetura da plataforma Java (destacando o JavaME)
Arquitetura da plataforma JavaME
Cenário A do Ginga-J
                         Inicialmente, pensou-se em adotar o GEM, especificação
                         européia composta pelas APIs JavaTV, DAVIC, HAVi e DVB.
Arquitetura do Ginga-J
Cenário B do Ginga-J
                         Posteriormente, substituiu-se o GEM pelo JavaDTV, especificação
                         da Sun (em parceria com o Fórum brasileiro de TV Digital)
                         composta pelas APIs JavaTV, Transport, LWUIT e App.
Arquitetura do Ginga-J
Arquitetura do Ginga-J   APIs do JavaDTV
Pacotes do JavaDTV 1.2.1
Arquitetura do Ginga-J
Extensões do Ginga-J
Arquitetura do Ginga-J




                                    Os     pacotes     do    JavaDTV
                                    permitem acesso genérico aos
                                    planos (exceto o plano de
                                    subtítulos)    oferecidos    pela
                                    plataforma para exibir conteúdo.
A API Gráfica LWUIT



Descrição arquitetural da API Gráfica LWUIT, parte integrante do JavaDTV
A API Gráfica LCDUI
Introdução ao LWUIT


LWUIT é uma biblioteca
                                LWUIT oferece, entre outros
baseada no Swing que
                                recursos: suporte a Touch
permite criar GUIs bastante
                                Screen, animações, botões,
atraentes em dispositivos que
                                fontes, transições de telas,
rodam       as     seguintes
                                temas, layouts, abas, caixas
plataformas: JavaME (CLDC
                                de diálogo, integração 3D,
1.1, MIDP 2.0 / CDC, FP e
                                etc.
PBP) ou JavaSE.
Introdução ao LWUIT

Cada componente visual do
LWUIT possui uma série de
                                 Além        disso,       cada
propriedades, tais como:
                                 componente        visual   do
focusable, navigable e able to
                                 LWUIT está associado a dois
receive user inputs.
                                 componentes:              um
                                 relacionado a presentation
                                 (look) e outro relacionado a
                                 behavior (feel). Dessa forma,
                                 separa-se funcionalidade de
                                 visão.
LWUIT e a Arquitetura MVC
                               LWUIT tem uma clara
                               separação entre model,
                               view e controller;

                               Por ser inspirado no Swing,
                               é fácil de aprender e
                               adotar;

                               LWUIT foi construído “do
                               zero” e não depende do
                               AWT.

       No LWUIT, tudo é customizável e extensível. Caso
       não exista um recurso ou componente, pode-se
       criá-lo e facilmente integrá-lo ao LWUIT.
Pacote com.sun.dtv.lwuit
Container
Container   é   um    Component
responsável por armazenar vários
componentes através do método
addComponent(…).

Cada Container tem o seu próprio
layout.
Form
Form é um Container que serve como
raiz para a interface do usuário.

O Form é composto por Title,
ContentPane e MenuBar.
Dialog
                        Dialog é um Form que ocupa
                        uma      parte  da    tela;

                        Dialog é, também, um “Top
                        Component”;

                        Um Dialog pode ser modal ou
                        modeless;

                        Possui os métodos show() e
                        dispose();

                        Pode ser criado de duas formas:

                        // Fábrica (método estático)
      Tipos de Dialog   Dialog.show(…);

                        // Criar um novo objeto
ALARM; CONFIRMATION;    Dialog d = new Dialog();
ERROR; INFO; WARNING.   d.show();
Dialog (Exemplo)
Dialog (Exemplo)
TabbedPane
TabbedPane é um container de abas
com títulos. Imagens também pode
ser usadas como abas.

As abas podem ser dispostas em
qualquer lado: cabeçalho, rodapé,
esquerda ou direita.

Passa-se um componente para o
método addTab() e especifica-se o
título da aba ou imagem.
Pacote com.sun.dtv.lwuit
Label
Um Label pode conter:

•   Texto;
•   Imagem;
•   Texto e Imagem;
•   Alinhamento Horizontal;
•   Alinhamento Vertical.
Button
Características de um Button:

• Herda de Label;
• Pode receber foco (focusable);
• Usa-se a tecla de seleção ou
  ponteiro para clicá-lo;

• Usa-se um ActionListener
  para descobrir quando o
  botão foi clicado.
RadioButton
Características de um RadioButton:

• Herda de Button;
• Possui um estado booleano;
• Não faz muito por si só, deve
  ser      agrupado        com
  ButtonGroup.
CheckBox
Características de um CheckBox:

• Herda de Button;
• Possui um estado booleano;

• Verifica-se a seleção do
  mesmo através do método
  isSelected().
TextArea
Características de um TextArea:

• Especifica linhas e colunas;
• Mostra o texto na tela;
• TextArea de múltiplas linhas
  podem aumentar de tamanho
  caso seja necessário;
• Constraints: ANY, DECIMAL,
  EMAILADDR,
  INITIAL_CAPS_SENTENCE,
  INITIAL_CAPS_WORD,
  NON_PREDICTIVE, NUMERIC,
  PASSWORD, PHONENUMBER,
  SENSITIVE, UNEDITABLE, URL.
TextField
Características de um TextField:

• Herda de TextArea;
• Representa um campo de
  texto (uma única linha).
List
• Crucial      para     aplicações
  interativas;
• Modelo de separação MVC
  (ListModel, ListCellRenderer e
  ListEvents, respectivamente);
• Repleto de modos úteis:
  • FIXED_NONE;
  • FIXED_NONE_CYCLIC;
  • FIXED_NONE_ONE_ELEM_
      MARGIN_FROM_EDGE;
  • FIXED_LEAD;
  • FIXED_TRAIL;
  • FIXED_CENTER.
ListModel
Representa a estrutura de dados de um
List.
• Crie a sua própria classe de
  modelo implementando a
  interface ListModel;
• Lance eventos de mudança de
  dados para a visão;
• O modelo permite que a lista
  mostre      uma     quantidade
  ilimitada de dados;
• List tem um modelo padrão, o
  DefaultModel.
ListCellRenderer
Interface responsável por exibir os
dados do modelo.

• List tem um modelo padrão, o
  DefaultListCellRenderer.
ListEvents
Quanto aos EVENTOS de List, podem
ser de três tipos:

• Action Events;
• Selection Events;
• Data Events.
ComboBox
Características de um ComboBox:

• É um tipo de List
  • Tem um model;
  • Pode usar um cell renderer
     customizado.
• Mostra a seleção atual;
• Abre uma lista de opções.
List (Exemplo)
List (Exemplo)
1. Coleção de atributos de estilo;
2. Declaros no arquivo .RES:
    1. Temas;
    2. Fontes;
    3. Imagens;
    4. Animações;
    5. Localização (L10N).
3. O tema pode ser substituído em tempo real.
Classes do pacote com.sun.dtv.lwuit
Pacotes e classes de LWUIT
A API Gráfica DTV-UI



Descrição arquitetural da API Gráfica DTV-UI, parte integrante do JavaDTV
Introdução a DTV-UI


                            DTV-UI oferece acesso a
  DTV-UI, representada
                            tela e configurações,
       pelo pacote
                            dispositivos específicos
 com.sun.dtv.ui, como o
                            de entrada do usuário e
 próprio nome diz, traz
                            o TextLayout Manager.
    funcionalidades
                            Além disso, suporta os
    específicas para
                            diversos planos de tela
interfaces em TV Digital.
                            do dispositivo.
Graphic Plane Support API

DTV-UI (com.sun.dtv.ui) permite acesso genérico aos planos
(br.org.sbtvd.ui), oferecidos pela plataforma para exibição de conteúdo.


                                                       Cinco planos:
                                                       Video,
                                                       StillPicture,
                                                       Switching Plane,
                                                       Text and Graphics Plane,
                                                       Subtitle Plane.
Graphic Plane Support API

A Graphic Plane Support API define três classes adicionais para as APIs de
Interface do JavaDTV: ColorCoding, StillPicture e SwitchArea.

» ColorCoding possui constantes para enumerar os possíveis modelos de
 codificação para cada plano;

» StillPicture permite que imagens JPEG sejam inseridas no plano estático de
 imagens;

» SwitchArea é um componente que define uma área retangular para o plano
 de seleção de vídeo/imagem. Cada retângulo pode ser adicionado através
 do método addComponent(…) de com.sun.dtv.lwuit.Component, no qual o
 plano de imagens estáticas aparecerá sobre o plano de vídeo ou vice-versa,
 dependendo do estilo (cor) do componente (preto mostra o vídeo e branco
 mostra a imagem estática).
Modelo Gráfico do JavaDTV
Hierarquia de Componentes JavaDTV
Exemplo com DTV-UI (Parte 1/4)
Exemplo com DTV-UI (Parte 2/4)
Exemplo com DTV-UI (Parte 3/4)
Exemplo com DTV-UI (Parte 4/4)
CONFIGURAÇÕES DE TELA



DTV-UI            provê caminhos para controlar qualquer camada da sua
apresentação visual. Para cada camada, é possível obter: aspect ratio, pixel
aspect ratio, screen resolution e screen area. Suporta diferentes ratios e screen
sizes, bem como alpha blending e alternância de camadas entre vídeo e
                                     imagem.
Recomenda-se que a configuração seja obtida como um ScarceResource, sendo
usado por uma única aplicação por vez.
TRATAMENTO GERAL DE EVENTOS



DTV-UI provê acesso a eventos de entradas do usuário antes
deles serem processados pelo mecanismo de alto nível de tratamento
de eventos do Java. Os eventos de entradas do usuário são
agrupados pelo tipo: numerical keys, arrow keys, colored keys. Essas
classes definem funcionalidades para o layout dos textos e sua
renderização na tela.
Classes do pacote com.sun.dtv.ui.event
Classes do pacote com.sun.dtv.ui.event
LAYOUT MANAGERS
                                                              Similar ao Swing. Seis
                                                              gerenciadores de
                                                              layout são suportados
DTV-UI possui a interface TextLayoutManager e                 (com.sun.dtv.lwuit.layouts):

duas implementações de layout:                                •   BorderLayout;
DefaultTextLayoutManager e                                    •   BoxLayout;
SophisticatedTextLayoutManager. Essas classes definem         •   FlowLayout;
funcionalidades para o layout dos textos e sua renderização   •   GridLayout;
na tela.                                                      •   CoordinateLayout;
                                                              •   GroupLayout.
Exemplo de uso de
Layout Managers
Arquitetura De Ap Is GráFicas Do Java Dtv   Lwuit E Dtv Ui
Classes do pacote com.sun.dtv.ui
Pacote com.sun.dtv.ui
Pacote com.sun.dtv.ui
Pacote com.sun.dtv.ui
Pacotes e classes de DTV-UI
Referências

http://java.sun.com/javame/technology/lwuit/

http://java.sun.com/javame/technology/javatv/

http://www.forumsbtvd.org.br

http://www.ginga.org.br

http://javatv-developers.dev.java.net/

http://www.interactivetvweb.org/

http://gingacdn.lavid.ufpb.br/
?   Dúvidas?



           Questionamentos sobre LWUIT e DTV-UI
What’s Your Message?
OBRIGADO!

Mais conteúdo relacionado

Mais procurados

Padrões de Projeto: Adapter
Padrões de Projeto: AdapterPadrões de Projeto: Adapter
Padrões de Projeto: AdapterMessias Batista
 
Padrão De Projeto Adapter
Padrão De Projeto AdapterPadrão De Projeto Adapter
Padrão De Projeto AdapterMatheus Andrade
 
Paper NOVL - Naked Objects View Language- InfoBrasil 2012
Paper NOVL - Naked Objects View Language- InfoBrasil 2012Paper NOVL - Naked Objects View Language- InfoBrasil 2012
Paper NOVL - Naked Objects View Language- InfoBrasil 2012Marcius Brandão
 
Introdução à programação para Android
Introdução à programação para AndroidIntrodução à programação para Android
Introdução à programação para AndroidJorge Cardoso
 
FLTK Summer Course - Part I - First Impact
FLTK Summer Course - Part I - First ImpactFLTK Summer Course - Part I - First Impact
FLTK Summer Course - Part I - First ImpactMichel Alves
 
Padrão de Projeto - Adapter
Padrão de Projeto - AdapterPadrão de Projeto - Adapter
Padrão de Projeto - AdapterJuliana Cindra
 
Palestra do FISL15: QtModeling: Metamodelagem e Model-Driven Software Enginee...
Palestra do FISL15: QtModeling: Metamodelagem e Model-Driven Software Enginee...Palestra do FISL15: QtModeling: Metamodelagem e Model-Driven Software Enginee...
Palestra do FISL15: QtModeling: Metamodelagem e Model-Driven Software Enginee...Sandro Andrade
 
Estudo comparativo das linguagens kotlin e java no desenvolvimento de aplicac...
Estudo comparativo das linguagens kotlin e java no desenvolvimento de aplicac...Estudo comparativo das linguagens kotlin e java no desenvolvimento de aplicac...
Estudo comparativo das linguagens kotlin e java no desenvolvimento de aplicac...Édipo Souza
 
CURSO DELPHI FUND. CLIENT SERVER (DIURNO)
CURSO DELPHI FUND. CLIENT SERVER (DIURNO) CURSO DELPHI FUND. CLIENT SERVER (DIURNO)
CURSO DELPHI FUND. CLIENT SERVER (DIURNO) Grupo Treinar
 

Mais procurados (17)

Padrões de Projeto: Adapter
Padrões de Projeto: AdapterPadrões de Projeto: Adapter
Padrões de Projeto: Adapter
 
Android Aula 2
Android Aula 2Android Aula 2
Android Aula 2
 
Padrão De Projeto Adapter
Padrão De Projeto AdapterPadrão De Projeto Adapter
Padrão De Projeto Adapter
 
Paper NOVL - Naked Objects View Language- InfoBrasil 2012
Paper NOVL - Naked Objects View Language- InfoBrasil 2012Paper NOVL - Naked Objects View Language- InfoBrasil 2012
Paper NOVL - Naked Objects View Language- InfoBrasil 2012
 
Apostila JavaME
Apostila JavaMEApostila JavaME
Apostila JavaME
 
Introdução à programação para Android
Introdução à programação para AndroidIntrodução à programação para Android
Introdução à programação para Android
 
FLTK Summer Course - Part I - First Impact
FLTK Summer Course - Part I - First ImpactFLTK Summer Course - Part I - First Impact
FLTK Summer Course - Part I - First Impact
 
Padrão de Projeto - Adapter
Padrão de Projeto - AdapterPadrão de Projeto - Adapter
Padrão de Projeto - Adapter
 
Palestra do FISL15: QtModeling: Metamodelagem e Model-Driven Software Enginee...
Palestra do FISL15: QtModeling: Metamodelagem e Model-Driven Software Enginee...Palestra do FISL15: QtModeling: Metamodelagem e Model-Driven Software Enginee...
Palestra do FISL15: QtModeling: Metamodelagem e Model-Driven Software Enginee...
 
Android Aula 5
Android Aula 5Android Aula 5
Android Aula 5
 
Design Patterns - Adapter e Decorator
Design Patterns - Adapter e DecoratorDesign Patterns - Adapter e Decorator
Design Patterns - Adapter e Decorator
 
Estudo comparativo das linguagens kotlin e java no desenvolvimento de aplicac...
Estudo comparativo das linguagens kotlin e java no desenvolvimento de aplicac...Estudo comparativo das linguagens kotlin e java no desenvolvimento de aplicac...
Estudo comparativo das linguagens kotlin e java no desenvolvimento de aplicac...
 
Aula Java Swing
Aula Java SwingAula Java Swing
Aula Java Swing
 
Plataforma Android
Plataforma AndroidPlataforma Android
Plataforma Android
 
Linguagem de programação Java 6, 7 e 8
Linguagem de programação Java 6, 7 e 8Linguagem de programação Java 6, 7 e 8
Linguagem de programação Java 6, 7 e 8
 
CURSO DELPHI FUND. CLIENT SERVER (DIURNO)
CURSO DELPHI FUND. CLIENT SERVER (DIURNO) CURSO DELPHI FUND. CLIENT SERVER (DIURNO)
CURSO DELPHI FUND. CLIENT SERVER (DIURNO)
 
Aula 2
Aula 2Aula 2
Aula 2
 

Semelhante a Arquitetura De Ap Is GráFicas Do Java Dtv Lwuit E Dtv Ui

Implementando LWUIT para TV Digital (Ginga-J) - JavaOne 2011
Implementando LWUIT para TV Digital (Ginga-J) - JavaOne 2011Implementando LWUIT para TV Digital (Ginga-J) - JavaOne 2011
Implementando LWUIT para TV Digital (Ginga-J) - JavaOne 2011Bruno Ghisi
 
Graphics Capabilities of Java Platform
Graphics Capabilities of Java PlatformGraphics Capabilities of Java Platform
Graphics Capabilities of Java PlatformMichel Alves
 
Paradigmas de Linguagens de Programação - Modularização, componentização e re...
Paradigmas de Linguagens de Programação - Modularização, componentização e re...Paradigmas de Linguagens de Programação - Modularização, componentização e re...
Paradigmas de Linguagens de Programação - Modularização, componentização e re...Adriano Teixeira de Souza
 
Curso Android - Dia 1 - Apresentação java
Curso Android - Dia 1 - Apresentação javaCurso Android - Dia 1 - Apresentação java
Curso Android - Dia 1 - Apresentação javaAlex Braz
 
Orientação a Objetos - Da Teoria a Pratica
Orientação a Objetos - Da Teoria a PraticaOrientação a Objetos - Da Teoria a Pratica
Orientação a Objetos - Da Teoria a Praticaelliando dias
 
Orientacao A Objetos Da Teoria A Pratica Em Java
Orientacao A Objetos   Da Teoria A Pratica Em JavaOrientacao A Objetos   Da Teoria A Pratica Em Java
Orientacao A Objetos Da Teoria A Pratica Em Javaelliando dias
 
Java: Muito mais que uma linguagem!
Java: Muito mais que uma linguagem!Java: Muito mais que uma linguagem!
Java: Muito mais que uma linguagem!Aécio Costa
 
Orientação a objetos da teoria a prática em java
Orientação a objetos   da teoria a prática em java Orientação a objetos   da teoria a prática em java
Orientação a objetos da teoria a prática em java Fabiano Lima
 
Minicurso wxWidgets
Minicurso wxWidgetsMinicurso wxWidgets
Minicurso wxWidgetsRenzo Petri
 
Desenvolvimento de Aplicações com Visual Studio
Desenvolvimento de Aplicações com Visual StudioDesenvolvimento de Aplicações com Visual Studio
Desenvolvimento de Aplicações com Visual StudioGeovani Ferreira Gonçalves
 
Farmácia na TV: Informações interativas de preço de medicamentos
Farmácia na TV: Informações interativas de preço de medicamentosFarmácia na TV: Informações interativas de preço de medicamentos
Farmácia na TV: Informações interativas de preço de medicamentosmercuriocfg
 

Semelhante a Arquitetura De Ap Is GráFicas Do Java Dtv Lwuit E Dtv Ui (20)

Implementando LWUIT para TV Digital (Ginga-J) - JavaOne 2011
Implementando LWUIT para TV Digital (Ginga-J) - JavaOne 2011Implementando LWUIT para TV Digital (Ginga-J) - JavaOne 2011
Implementando LWUIT para TV Digital (Ginga-J) - JavaOne 2011
 
LWUIT - Just Java2008
LWUIT - Just Java2008LWUIT - Just Java2008
LWUIT - Just Java2008
 
Graphics Capabilities of Java Platform
Graphics Capabilities of Java PlatformGraphics Capabilities of Java Platform
Graphics Capabilities of Java Platform
 
Programe seu androide
Programe seu androidePrograme seu androide
Programe seu androide
 
Programe seu androide
Programe seu androidePrograme seu androide
Programe seu androide
 
Paradigmas de Linguagens de Programação - Modularização, componentização e re...
Paradigmas de Linguagens de Programação - Modularização, componentização e re...Paradigmas de Linguagens de Programação - Modularização, componentização e re...
Paradigmas de Linguagens de Programação - Modularização, componentização e re...
 
java
javajava
java
 
Curso Android - Dia 1 - Apresentação java
Curso Android - Dia 1 - Apresentação javaCurso Android - Dia 1 - Apresentação java
Curso Android - Dia 1 - Apresentação java
 
Netbeans
NetbeansNetbeans
Netbeans
 
Orientação a Objetos - Da Teoria a Pratica
Orientação a Objetos - Da Teoria a PraticaOrientação a Objetos - Da Teoria a Pratica
Orientação a Objetos - Da Teoria a Pratica
 
Orientacao A Objetos Da Teoria A Pratica Em Java
Orientacao A Objetos   Da Teoria A Pratica Em JavaOrientacao A Objetos   Da Teoria A Pratica Em Java
Orientacao A Objetos Da Teoria A Pratica Em Java
 
JavaFx - Introdução
JavaFx - IntroduçãoJavaFx - Introdução
JavaFx - Introdução
 
JavaME
JavaMEJavaME
JavaME
 
Java -aula_01
Java  -aula_01Java  -aula_01
Java -aula_01
 
Java: Muito mais que uma linguagem!
Java: Muito mais que uma linguagem!Java: Muito mais que uma linguagem!
Java: Muito mais que uma linguagem!
 
Orientação a objetos da teoria a prática em java
Orientação a objetos   da teoria a prática em java Orientação a objetos   da teoria a prática em java
Orientação a objetos da teoria a prática em java
 
Widgets
WidgetsWidgets
Widgets
 
Minicurso wxWidgets
Minicurso wxWidgetsMinicurso wxWidgets
Minicurso wxWidgets
 
Desenvolvimento de Aplicações com Visual Studio
Desenvolvimento de Aplicações com Visual StudioDesenvolvimento de Aplicações com Visual Studio
Desenvolvimento de Aplicações com Visual Studio
 
Farmácia na TV: Informações interativas de preço de medicamentos
Farmácia na TV: Informações interativas de preço de medicamentosFarmácia na TV: Informações interativas de preço de medicamentos
Farmácia na TV: Informações interativas de preço de medicamentos
 

Mais de Erisvaldo Junior

Desenvolvimento de Apps e Games para iOS - Parte 2
Desenvolvimento de Apps e Games para iOS - Parte 2Desenvolvimento de Apps e Games para iOS - Parte 2
Desenvolvimento de Apps e Games para iOS - Parte 2Erisvaldo Junior
 
Desenvolvimento de Apps e Games para iOS - Parte 1
Desenvolvimento de Apps e Games para iOS - Parte 1Desenvolvimento de Apps e Games para iOS - Parte 1
Desenvolvimento de Apps e Games para iOS - Parte 1Erisvaldo Junior
 
Desenvolvimento de apps e games para android parte 8
Desenvolvimento de apps e games para android   parte 8Desenvolvimento de apps e games para android   parte 8
Desenvolvimento de apps e games para android parte 8Erisvaldo Junior
 
Desenvolvimento de Apps e Games para Android - Parte 7
Desenvolvimento de Apps e Games para Android - Parte 7Desenvolvimento de Apps e Games para Android - Parte 7
Desenvolvimento de Apps e Games para Android - Parte 7Erisvaldo Junior
 
Desenvolvimento de Apps e Games para Android - Parte 6
Desenvolvimento de Apps e Games para Android - Parte 6Desenvolvimento de Apps e Games para Android - Parte 6
Desenvolvimento de Apps e Games para Android - Parte 6Erisvaldo Junior
 
Desenvolvimento de Apps e Games para Android - Parte 5
Desenvolvimento de Apps e Games para Android - Parte 5Desenvolvimento de Apps e Games para Android - Parte 5
Desenvolvimento de Apps e Games para Android - Parte 5Erisvaldo Junior
 
Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)
Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)
Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)Erisvaldo Junior
 
Desenvolvimento de Apps e Games para Android - Parte 4
Desenvolvimento de Apps e Games para Android - Parte 4Desenvolvimento de Apps e Games para Android - Parte 4
Desenvolvimento de Apps e Games para Android - Parte 4Erisvaldo Junior
 
Desenvolvimento de Apps e Games para Android - Parte 3
Desenvolvimento de Apps e Games para Android - Parte 3Desenvolvimento de Apps e Games para Android - Parte 3
Desenvolvimento de Apps e Games para Android - Parte 3Erisvaldo Junior
 
Desenvolvimento de Apps e Games para Android - Parte 2
Desenvolvimento de Apps e Games para Android - Parte 2Desenvolvimento de Apps e Games para Android - Parte 2
Desenvolvimento de Apps e Games para Android - Parte 2Erisvaldo Junior
 
Desenvolvimento de Apps e Games para Android - Parte 1
Desenvolvimento de Apps e Games para Android - Parte 1Desenvolvimento de Apps e Games para Android - Parte 1
Desenvolvimento de Apps e Games para Android - Parte 1Erisvaldo Junior
 
Java me record management system
Java me   record management systemJava me   record management system
Java me record management systemErisvaldo Junior
 
Java me material complementar
Java me   material complementarJava me   material complementar
Java me material complementarErisvaldo Junior
 
Java me material complementar
Java me   material complementarJava me   material complementar
Java me material complementarErisvaldo Junior
 
Java me record management system
Java me   record management systemJava me   record management system
Java me record management systemErisvaldo Junior
 
Java me generic connection framework
Java me   generic connection frameworkJava me   generic connection framework
Java me generic connection frameworkErisvaldo Junior
 
Introdução a api de baixo nível do java me
Introdução a api de baixo nível do java meIntrodução a api de baixo nível do java me
Introdução a api de baixo nível do java meErisvaldo Junior
 
Introdução a game api do java me
Introdução a game api do java meIntrodução a game api do java me
Introdução a game api do java meErisvaldo Junior
 

Mais de Erisvaldo Junior (20)

A Era da Mobilidade
A Era da MobilidadeA Era da Mobilidade
A Era da Mobilidade
 
Desenvolvimento de Apps e Games para iOS - Parte 2
Desenvolvimento de Apps e Games para iOS - Parte 2Desenvolvimento de Apps e Games para iOS - Parte 2
Desenvolvimento de Apps e Games para iOS - Parte 2
 
Desenvolvimento de Apps e Games para iOS - Parte 1
Desenvolvimento de Apps e Games para iOS - Parte 1Desenvolvimento de Apps e Games para iOS - Parte 1
Desenvolvimento de Apps e Games para iOS - Parte 1
 
Desenvolvimento de apps e games para android parte 8
Desenvolvimento de apps e games para android   parte 8Desenvolvimento de apps e games para android   parte 8
Desenvolvimento de apps e games para android parte 8
 
Desenvolvimento de Apps e Games para Android - Parte 7
Desenvolvimento de Apps e Games para Android - Parte 7Desenvolvimento de Apps e Games para Android - Parte 7
Desenvolvimento de Apps e Games para Android - Parte 7
 
Desenvolvimento de Apps e Games para Android - Parte 6
Desenvolvimento de Apps e Games para Android - Parte 6Desenvolvimento de Apps e Games para Android - Parte 6
Desenvolvimento de Apps e Games para Android - Parte 6
 
Desenvolvimento de Apps e Games para Android - Parte 5
Desenvolvimento de Apps e Games para Android - Parte 5Desenvolvimento de Apps e Games para Android - Parte 5
Desenvolvimento de Apps e Games para Android - Parte 5
 
Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)
Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)
Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)
 
Desenvolvimento de Apps e Games para Android - Parte 4
Desenvolvimento de Apps e Games para Android - Parte 4Desenvolvimento de Apps e Games para Android - Parte 4
Desenvolvimento de Apps e Games para Android - Parte 4
 
Desenvolvimento de Apps e Games para Android - Parte 3
Desenvolvimento de Apps e Games para Android - Parte 3Desenvolvimento de Apps e Games para Android - Parte 3
Desenvolvimento de Apps e Games para Android - Parte 3
 
Desenvolvimento de Apps e Games para Android - Parte 2
Desenvolvimento de Apps e Games para Android - Parte 2Desenvolvimento de Apps e Games para Android - Parte 2
Desenvolvimento de Apps e Games para Android - Parte 2
 
Desenvolvimento de Apps e Games para Android - Parte 1
Desenvolvimento de Apps e Games para Android - Parte 1Desenvolvimento de Apps e Games para Android - Parte 1
Desenvolvimento de Apps e Games para Android - Parte 1
 
Nokia SDK for Java
Nokia SDK for JavaNokia SDK for Java
Nokia SDK for Java
 
Java me record management system
Java me   record management systemJava me   record management system
Java me record management system
 
Java me material complementar
Java me   material complementarJava me   material complementar
Java me material complementar
 
Java me material complementar
Java me   material complementarJava me   material complementar
Java me material complementar
 
Java me record management system
Java me   record management systemJava me   record management system
Java me record management system
 
Java me generic connection framework
Java me   generic connection frameworkJava me   generic connection framework
Java me generic connection framework
 
Introdução a api de baixo nível do java me
Introdução a api de baixo nível do java meIntrodução a api de baixo nível do java me
Introdução a api de baixo nível do java me
 
Introdução a game api do java me
Introdução a game api do java meIntrodução a game api do java me
Introdução a game api do java me
 

Arquitetura De Ap Is GráFicas Do Java Dtv Lwuit E Dtv Ui

  • 1. Erisvaldo Gadelha Saraiva Júnior Arquitetura de APIs Gráficas do JavaDTV LWUIT e DTV-UI Erisvaldo Gadelha Saraiva Júnior Laboratório de Aplicações de Vídeo Digital Departamento de Informática - UFPB Contato: erisvaldojunior@gmail.com
  • 2. Objetivo Expor a arquitetura de APIs Gráficas do JavaDTV: LWUIT e DTV-UI. Organize with Sections Imagens de telas confeccionadas com o LWUIT rodando em dispositivos móveis.
  • 3. Roteiro de Apresentação APIs Gráficas A API Gráfica A API Gráfica do JavaDTV LWUIT DTV-UI Arquitetura de APIs Gráficas do JavaDTV: LWUIT e DTV-UI
  • 4. APIs Gráficas do JavaDTV Descrição arquitetural das APIs Gráficas do JavaDTV
  • 5. Arquitetura da plataforma Java (destacando o JavaME)
  • 7. Cenário A do Ginga-J Inicialmente, pensou-se em adotar o GEM, especificação européia composta pelas APIs JavaTV, DAVIC, HAVi e DVB. Arquitetura do Ginga-J
  • 8. Cenário B do Ginga-J Posteriormente, substituiu-se o GEM pelo JavaDTV, especificação da Sun (em parceria com o Fórum brasileiro de TV Digital) composta pelas APIs JavaTV, Transport, LWUIT e App. Arquitetura do Ginga-J
  • 9. Arquitetura do Ginga-J APIs do JavaDTV
  • 10. Pacotes do JavaDTV 1.2.1 Arquitetura do Ginga-J
  • 11. Extensões do Ginga-J Arquitetura do Ginga-J Os pacotes do JavaDTV permitem acesso genérico aos planos (exceto o plano de subtítulos) oferecidos pela plataforma para exibir conteúdo.
  • 12. A API Gráfica LWUIT Descrição arquitetural da API Gráfica LWUIT, parte integrante do JavaDTV
  • 13. A API Gráfica LCDUI
  • 14. Introdução ao LWUIT LWUIT é uma biblioteca LWUIT oferece, entre outros baseada no Swing que recursos: suporte a Touch permite criar GUIs bastante Screen, animações, botões, atraentes em dispositivos que fontes, transições de telas, rodam as seguintes temas, layouts, abas, caixas plataformas: JavaME (CLDC de diálogo, integração 3D, 1.1, MIDP 2.0 / CDC, FP e etc. PBP) ou JavaSE.
  • 15. Introdução ao LWUIT Cada componente visual do LWUIT possui uma série de Além disso, cada propriedades, tais como: componente visual do focusable, navigable e able to LWUIT está associado a dois receive user inputs. componentes: um relacionado a presentation (look) e outro relacionado a behavior (feel). Dessa forma, separa-se funcionalidade de visão.
  • 16. LWUIT e a Arquitetura MVC LWUIT tem uma clara separação entre model, view e controller; Por ser inspirado no Swing, é fácil de aprender e adotar; LWUIT foi construído “do zero” e não depende do AWT. No LWUIT, tudo é customizável e extensível. Caso não exista um recurso ou componente, pode-se criá-lo e facilmente integrá-lo ao LWUIT.
  • 18. Container Container é um Component responsável por armazenar vários componentes através do método addComponent(…). Cada Container tem o seu próprio layout.
  • 19. Form Form é um Container que serve como raiz para a interface do usuário. O Form é composto por Title, ContentPane e MenuBar.
  • 20. Dialog Dialog é um Form que ocupa uma parte da tela; Dialog é, também, um “Top Component”; Um Dialog pode ser modal ou modeless; Possui os métodos show() e dispose(); Pode ser criado de duas formas: // Fábrica (método estático) Tipos de Dialog Dialog.show(…); // Criar um novo objeto ALARM; CONFIRMATION; Dialog d = new Dialog(); ERROR; INFO; WARNING. d.show();
  • 23. TabbedPane TabbedPane é um container de abas com títulos. Imagens também pode ser usadas como abas. As abas podem ser dispostas em qualquer lado: cabeçalho, rodapé, esquerda ou direita. Passa-se um componente para o método addTab() e especifica-se o título da aba ou imagem.
  • 25. Label Um Label pode conter: • Texto; • Imagem; • Texto e Imagem; • Alinhamento Horizontal; • Alinhamento Vertical.
  • 26. Button Características de um Button: • Herda de Label; • Pode receber foco (focusable); • Usa-se a tecla de seleção ou ponteiro para clicá-lo; • Usa-se um ActionListener para descobrir quando o botão foi clicado.
  • 27. RadioButton Características de um RadioButton: • Herda de Button; • Possui um estado booleano; • Não faz muito por si só, deve ser agrupado com ButtonGroup.
  • 28. CheckBox Características de um CheckBox: • Herda de Button; • Possui um estado booleano; • Verifica-se a seleção do mesmo através do método isSelected().
  • 29. TextArea Características de um TextArea: • Especifica linhas e colunas; • Mostra o texto na tela; • TextArea de múltiplas linhas podem aumentar de tamanho caso seja necessário; • Constraints: ANY, DECIMAL, EMAILADDR, INITIAL_CAPS_SENTENCE, INITIAL_CAPS_WORD, NON_PREDICTIVE, NUMERIC, PASSWORD, PHONENUMBER, SENSITIVE, UNEDITABLE, URL.
  • 30. TextField Características de um TextField: • Herda de TextArea; • Representa um campo de texto (uma única linha).
  • 31. List • Crucial para aplicações interativas; • Modelo de separação MVC (ListModel, ListCellRenderer e ListEvents, respectivamente); • Repleto de modos úteis: • FIXED_NONE; • FIXED_NONE_CYCLIC; • FIXED_NONE_ONE_ELEM_ MARGIN_FROM_EDGE; • FIXED_LEAD; • FIXED_TRAIL; • FIXED_CENTER.
  • 32. ListModel Representa a estrutura de dados de um List. • Crie a sua própria classe de modelo implementando a interface ListModel; • Lance eventos de mudança de dados para a visão; • O modelo permite que a lista mostre uma quantidade ilimitada de dados; • List tem um modelo padrão, o DefaultModel.
  • 33. ListCellRenderer Interface responsável por exibir os dados do modelo. • List tem um modelo padrão, o DefaultListCellRenderer.
  • 34. ListEvents Quanto aos EVENTOS de List, podem ser de três tipos: • Action Events; • Selection Events; • Data Events.
  • 35. ComboBox Características de um ComboBox: • É um tipo de List • Tem um model; • Pode usar um cell renderer customizado. • Mostra a seleção atual; • Abre uma lista de opções.
  • 38. 1. Coleção de atributos de estilo; 2. Declaros no arquivo .RES: 1. Temas; 2. Fontes; 3. Imagens; 4. Animações; 5. Localização (L10N). 3. O tema pode ser substituído em tempo real.
  • 39. Classes do pacote com.sun.dtv.lwuit
  • 40. Pacotes e classes de LWUIT
  • 41. A API Gráfica DTV-UI Descrição arquitetural da API Gráfica DTV-UI, parte integrante do JavaDTV
  • 42. Introdução a DTV-UI DTV-UI oferece acesso a DTV-UI, representada tela e configurações, pelo pacote dispositivos específicos com.sun.dtv.ui, como o de entrada do usuário e próprio nome diz, traz o TextLayout Manager. funcionalidades Além disso, suporta os específicas para diversos planos de tela interfaces em TV Digital. do dispositivo.
  • 43. Graphic Plane Support API DTV-UI (com.sun.dtv.ui) permite acesso genérico aos planos (br.org.sbtvd.ui), oferecidos pela plataforma para exibição de conteúdo. Cinco planos: Video, StillPicture, Switching Plane, Text and Graphics Plane, Subtitle Plane.
  • 44. Graphic Plane Support API A Graphic Plane Support API define três classes adicionais para as APIs de Interface do JavaDTV: ColorCoding, StillPicture e SwitchArea. » ColorCoding possui constantes para enumerar os possíveis modelos de codificação para cada plano; » StillPicture permite que imagens JPEG sejam inseridas no plano estático de imagens; » SwitchArea é um componente que define uma área retangular para o plano de seleção de vídeo/imagem. Cada retângulo pode ser adicionado através do método addComponent(…) de com.sun.dtv.lwuit.Component, no qual o plano de imagens estáticas aparecerá sobre o plano de vídeo ou vice-versa, dependendo do estilo (cor) do componente (preto mostra o vídeo e branco mostra a imagem estática).
  • 47. Exemplo com DTV-UI (Parte 1/4)
  • 48. Exemplo com DTV-UI (Parte 2/4)
  • 49. Exemplo com DTV-UI (Parte 3/4)
  • 50. Exemplo com DTV-UI (Parte 4/4)
  • 51. CONFIGURAÇÕES DE TELA DTV-UI provê caminhos para controlar qualquer camada da sua apresentação visual. Para cada camada, é possível obter: aspect ratio, pixel aspect ratio, screen resolution e screen area. Suporta diferentes ratios e screen sizes, bem como alpha blending e alternância de camadas entre vídeo e imagem. Recomenda-se que a configuração seja obtida como um ScarceResource, sendo usado por uma única aplicação por vez.
  • 52. TRATAMENTO GERAL DE EVENTOS DTV-UI provê acesso a eventos de entradas do usuário antes deles serem processados pelo mecanismo de alto nível de tratamento de eventos do Java. Os eventos de entradas do usuário são agrupados pelo tipo: numerical keys, arrow keys, colored keys. Essas classes definem funcionalidades para o layout dos textos e sua renderização na tela.
  • 53. Classes do pacote com.sun.dtv.ui.event
  • 54. Classes do pacote com.sun.dtv.ui.event
  • 55. LAYOUT MANAGERS Similar ao Swing. Seis gerenciadores de layout são suportados DTV-UI possui a interface TextLayoutManager e (com.sun.dtv.lwuit.layouts): duas implementações de layout: • BorderLayout; DefaultTextLayoutManager e • BoxLayout; SophisticatedTextLayoutManager. Essas classes definem • FlowLayout; funcionalidades para o layout dos textos e sua renderização • GridLayout; na tela. • CoordinateLayout; • GroupLayout.
  • 56. Exemplo de uso de Layout Managers
  • 58. Classes do pacote com.sun.dtv.ui
  • 62. Pacotes e classes de DTV-UI
  • 64. ? Dúvidas? Questionamentos sobre LWUIT e DTV-UI