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.

pb_30_09_09_pic11.JPG
F
igura 10 - Criar um novo projeto

Nesta nova tela, selecione em “Projects:” o item “CDC Application”, como mostra a Figura 11 a seguir.

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

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

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

pb_30_09_09_pic15.JPG
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     }

66 }