Java Embarcado Desenvolvendo sua primeira aplicação com Java ME para Blu-ray – Parte 09
Por:
Carlos Fernando
Gonçalves
Thiago Galbiatti Vespa
Cássio Alexandre Sousa
Aplicação BD-J
Vamos procurar
realizar com esta primeira aplicação é implementar um pequeno exemplo onde se
mostra uma imagem estática no formato PNG e um pequeno quadro pintado na tela
com um texto “Primeira aplicação BD-J”. Desta forma, observaremos a
implementação da interface Xlet e dos métodos. Após a codificação e compilação
do pequeno aplicativo, acionaremos o palyer ToTalMedia Theatre pelo
próprio SDK.
Observe o
código a seguir:
Listagem 2. PrimeiraBDJ.java
1 /*
2 *
Primeira aplicação BDJ
3 */
4 package primeirabdj;
5
6 import java.awt.BorderLayout;
7 import java.awt.Color;
8 import java.awt.Container;
9 import java.awt.Font;
10 import java.awt.Graphics;
11 import java.awt.Image;
12 import java.awt.Toolkit;
13 import org.havi.ui.HScene;
14 import org.havi.ui.HSceneFactory;
15 import org.havi.ui.HStaticIcon;
16
17
18 public class PrimeiraBDJ implements
javax.tv.xlet.Xlet {
19
20 private static Font font;
21 private HScene cena;
22 private Container gui;
23 private static final String message
= "Primeira aplicação BD-J!";
24 private Image img;
25 private HStaticIcon iconeImg;
26
27
/**
28
* Construtor padrão
29
*/
30 public PrimeiraBDJ() {
31
}
32
33
/**
34
* Inicialização
35
*/
36 public void initXlet(javax.tv.xlet.XletContext
context)
37 throws javax.tv.xlet.XletStateChangeException {
38
39 font = new Font(null, Font.PLAIN, 48);
40 img = Toolkit.getDefaultToolkit().getImage("imagem.png");
41
42
43 cena =
HSceneFactory.getInstance().getDefaultHScene();
44 gui = new Container() {
45
46 public void paint(Graphics g) {
47
g.setFont(font);
48
g.setColor(new Color(51, 102, 255));
49
g.fillRect((getWidth() / 2) - 300, (getHeight() / 2) - 100, 600, 80);
50
g.setColor(new Color(245, 245, 245));
51 int message_width =
g.getFontMetrics().stringWidth(message);
52
g.drawString(message, (getWidth() -
message_width) / 2, 500);
53
}
54
};
55
56 gui.setSize(1920, 1080); // BD screen size
57
58
59 cena.add(gui,
BorderLayout.CENTER);
60 iconeImg = new
HStaticIcon(img);
61 iconeImg.setSize(95, 145);
62 iconeImg.setLocation(cena.getWidth() / 2,
cena.getHeight() / 2);
63 iconeImg.setVisible(true);
64 iconeImg.setBackgroundMode(HScene.IMAGE_STRETCH);
65 iconeImg.setBackground(Color.green);
66 cena.add(iconeImg);
67
68
69
cena.validate();
70
71
72
}
73
74
/**
75
* Executa Xlet
76
*/
77 public void startXlet() throws
javax.tv.xlet.XletStateChangeException {
78 gui.setVisible(true);
79 cena.setVisible(true);
80
}
81
82
/**
83
* Libera recursos
84
*/
85 public void pauseXlet() {
86 gui.setVisible(false);
87
}
88
89
/**
90
* Destrói Xlet
91
*/
92 public void destroyXlet(boolean
unconditional)
93 throws javax.tv.xlet.XletStateChangeException {
94
cena.remove(gui);
95
cena = null;
96
}
97 }
Na listagem
dois, observamos que a classe PrimeiraBDJ implementa a interface
javax.tv.xlet.Xlet, o que implica, seguir o contrato e implementar os métodos
initXlet(), startXlet()e pauseXlet().
Nas linhas 21 e
22 definimos os objetos “cena” e “container” que serão codificados no método
initXlet() que recebe o parâmetro o próprio contexto para construir na tela
todos os objetos visíveis bem como também o tipo e tamanho de texto, local da
imagem, elemento gráfico de um retângulo preenchido com a cor verde.
O resultado da
execução deste pequeno programa no player BD-J é exibido na Figura 15 a seguir:
Figura 15 - Aplicação carregada no player BD-J
Conclusão
A plataforma
Blu-Ray Java Disc, trás um novo campo para de desenvolvimento que estará
presente e milhares de lares pelo mundo oferecendo uma oportunidade para os
programadores que até então inexistente.
Perspectivas de
criação de games on-line, aplicações educacionais, adição de interatividade e
interação com usuário não só do player podem oferecer um campo fértil para ideias
de novas aplicações e oportunidades de grandes negócios, pois vale a pena
lembrar que a indústria cinematográfica mundial movimenta bilhões de dólares ao
ano e tem algo a mais em oferecer aos consumidores dos filmes produzidos pelos
estúdios agregando algo superior e atual que é a possibilidade de mais um ponto
de presença da internet próximo ao usuário alargamento tremendamente as
fronteiras de possibilidades de negócios.
Links
Blu-ray Disc Application Development with Java ME, Part
1: Creating Your First Application
http://java.sun.com/developer/technicalArticles/javame/bluray/
Blu-ray Disc Application Development with Java ME, Part
2: Responding to User Input
http://java.sun.com/developer/technicalArticles/javame/bluray/part2/
Producing Blu-Ray Disc Java Software Titles for Hollywood
http://developers.sun.com/learning/javaoneonline/2007/pdf/TS-0887.pdf
Blu-ray Disc http://en.wikipedia.org/wiki/Blu-ray_Disc