Java Embarcado Desenvolvendo sua primeira aplicação com Java ME para Blu-ray – Parte 08
Por:
Carlos Fernando
Gonçalves
Thiago Galbiatti Vespa
Cássio Alexandre Sousa
Novo projeto BD-J
Ambiente
devidamente ajustado estamos prontos para iniciar um novo projeto BD-J. Acione
na barra de menu o item “File”, em seguida selecione o item “New Project...”,
conforme a Figura 10 indica.
Figura 10 - Criar um novo projeto
Nesta nova
tela, selecione em “Projects:” o item “CDC Application”,
como mostra a Figura 11 a seguir.
Figura 11 - Seleção da categoria de projeto “CDC Application
Na primeira
caixa de entrada de dados, “Project Name:”, vamos o nome ao nosso projeto de
“PrimeraBDJ”. Por conveniência, criamos um diretório nomeado “C:\projetos_javame” e utilizamos o mesmo na entrada de
dados “Project Location”. Para efeito de exemplificar, deixe selecionado “Set
as Main Project” e “Create Main Class” com o nome sugerido, conforme a Figura
12.
Figura 12 - Ajuste de opções do projeto
Selecione em
“Java Plataform:”, o item “CDC Java(TM) Plataform Micro Edition SDK 3.0”, como
mostra a Figura 13.
Figura 13 - Seleção de plataforma
Na tela da
classe Main.java criada, notasse alguns pacotes importados como java.awt
e org.havi , como mostra a Figura 14.
Figura 14 - Projeto criado com estrutura e uma classe
inicial
Esta classe
criada irá implementar a interface Xlets com seus respectivos métodos.
Listagem 1. PrimeiraBDJ.java
1 package primeirabdj;
2
3 import java.awt.BorderLayout;
4 import java.awt.Color;
5 import java.awt.Container;
6 import java.awt.Font;
7 import java.awt.Graphics;
8 import org.havi.ui.HScene;
9 import org.havi.ui.HSceneFactory;
10
11
12 public class Main implements
javax.tv.xlet.Xlet {
13
14
private static Font font;
15
private HScene scene;
16
private Container gui;
17
private static final String message
= "Hello BD-J World!";
18
19
/**
20
* Default constructor without arguments should be.
21
*/
22
public Main() {
23
}
24
25
26 public void initXlet(javax.tv.xlet.XletContext
context)
27
throws javax.tv.xlet.XletStateChangeException {
28
29
font = new
Font(null, Font.PLAIN,
48);
30
31
scene =
HSceneFactory.getInstance().getDefaultHScene();
32
gui = new
Container() {
33
34
public void paint(Graphics g) {
35
g.setFont(font);
36
g.setColor(new Color(255, 10, 10));
37
g.fillRect(20, 20, getWidth() - 40, getHeight() - 40);
38
g.setColor(new Color(245, 245, 245));
39
int message_width =
g.getFontMetrics().stringWidth(message);
40
g.drawString(message, (getWidth() - message_width) / 2, 500);
41
}
42
};
43
44
gui.setSize(1920, 1080); // BD screen
size
45
scene.add(gui, BorderLayout.CENTER);
46
scene.validate();
47
}
48
49
50
public void startXlet() throws javax.tv.xlet.XletStateChangeException {
51
gui.setVisible(true);
52
scene.setVisible(true);
53
}
54
55
56
public void pauseXlet() {
57
gui.setVisible(false);
58
}
59
60
61
public void destroyXlet(boolean unconditional)
62
throws javax.tv.xlet.XletStateChangeException {
63
scene.remove(gui);
64
scene = null;
65
}