JAVATV como por o texto por cima da imagem?

pessoal…

eu quero fazer um HStaticText ficar aparecendo por cima de uma imagem pintada pelo paint() …
nao estou conseguindo fazer, abaixo segue o meu código:

   1. import java.awt.Color;  
   2. import java.awt.Font;  
   3. import java.awt.Graphics;  
   4. import java.awt.Image;  
   5. import java.awt.MediaTracker;  
   6. import java.awt.Toolkit;  
   7. import javax.tv.xlet.Xlet;  
   8. import javax.tv.xlet.XletContext;  
   9. import javax.tv.xlet.XletStateChangeException;  
  10. import org.havi.ui.HContainer;  
  11. import org.havi.ui.HScene;  
  12. import org.havi.ui.HSceneFactory;  
  13. import org.havi.ui.HScreen;  
  14. import org.havi.ui.HStaticText;  
  15.   
  16. public class novaImg extends HContainer implements Xlet {  
  17.   
  18.    private XletContext contexto;  
  19.    private HScene scene;  
  20.    private Image img;  
  21.    private HContainer c;  
  22.    private HStaticText tex;  
  23.   
  24.    public void cena1() {  
  25.   
  26.       tex = new HStaticText("Rafaelfhhhhhff");  
  27.       tex.setFont(new Font("tiresias", Font.BOLD, 36));  
  28.       tex.setBounds(10, 300, 600, 80);  
  29.       tex.setForeground(Color.BLACK);  
  30.       tex.setBackground(new Color(45, 45, 45, 0));  
  31.   
  32.       c = this;  
  33.       c.setBounds(0, 0, 720, 550);  
  34.   
  35.       scene.add(c);  
  36.       scene.add(tex);  
  37.       scene.setVisible(true);  
  38.   
  39.    }  
  40.   
  41.    public void paint(Graphics g) {  
  42.   
  43.       img = Toolkit.getDefaultToolkit().getImage("b1-2.gif");  
  44.       g.drawImage(img, 50, 300, 240, 200, null);  
  45.   
  46.       paint(g);  
  47.    }  
  48.   
  49.    public static void main(String[] args) {  
  50.    }  
  51.   
  52.    public void destroyXlet(boolean arg0) throws XletStateChangeException {  
  53.   
  54.       contexto.notifyDestroyed();  
  55.    }  
  56.   
  57.    public void initXlet(XletContext contexto) throws XletStateChangeException {  
  58.   
  59.       this.contexto = contexto;  
  60.       scene = HSceneFactory.getInstance().getFullScreenScene(  
  61.             HScreen.getDefaultHScreen().getDefaultHGraphicsDevice());  
  62.       cena1();  
  63.    }  
  64.   
  65.    public void pauseXlet() {  
  66.    }  
  67.   
  68.    public void startXlet() throws XletStateChangeException {  
  69.    }  
  70. }  

segue uma imagem anexada mostrando o problema…

se alguem puder me ajudar!..


cara, como vc conseguiu colocar essa imagem???
estou tentando mas nao consigo de forma alguma!!! parece que em nenhum momento o metodo paint é chamado!!!
ficarei grato se conseguir me ajudar!!!
valew

[quote=Rafael Adami]cara, como vc conseguiu colocar essa imagem???
estou tentando mas nao consigo de forma alguma!!! parece que em nenhum momento o metodo paint é chamado!!!
ficarei grato se conseguir me ajudar!!!
valew[/quote]

o método paint não é chamado! ele é executado sozinho!
copie o código que eu passei, e ponha as imgs na msm pasta do projeto q deve dar certo!!

flws

cara, nem deu certo nao!!!
nao to conseguindo!!!
valew!!!

Qdo vc programa p/ TV digital vc tem a opção de usar três camadas diferentes p/ mostrar o q vc deseja na tela…
No seu caso comedor_de_folhas, vc pode jogar a imagem do paint no background e o hstatictext vc coloca na cena, assim vc mexe com dois componentes diferentes no mesmo “local”, só que em níveis diferentes… se não for assim, acho que não dá, vc vai ter q colocar o texto direto na imagem…

alguem sabe como consigo fazer um panel ficar meio transparente???
para que a imagem atras do panel apareça no fundo???

grato

como faço para colocar uma imagem no panel???
alguem poderia me ajudar???

grato!!!

[quote=Rafael Adami]como faço para colocar uma imagem no panel???
alguem poderia me ajudar???

grato!!![/quote]

o HGraphcButton é usado p/ colocar imagens na tela (deve ter outras coisas, mas só lembro desse)… dependendo do que vc vai fazer, não sei se vai ter sucesso usando panel, mas tenta aí :wink:
ou vc pode tentar “drawimage”, nesse tópico tem um código do comedor_de_folhas usando isso…

eu consegui colocar uma imagem!!! segue o codigo

btn_imagem = new HGraphicButton(image);
btn_imagem.setForeground(Color.WHITE);
btn_imagem.setBackground(Color.BLACK);
btn_imagem.setSize(300,300);
btn_imagem.setLocation(150,300);
btn_imagem.setVisible(true);

scene.add(btn_imagem);

mas o unico problema, é que a imagem aparece e desaparece!!! ela nao fica estatica!!!
alguem poderia me ajudar???

grato!!!

[quote=Rafael Adami] […] a imagem aparece e desaparece!!! ela nao fica estatica!!!
alguem poderia me ajudar???

grato!!![/quote]

Ela aparece e desaparece assim do nada, sem q vc pressione alguma tecla?! Pergunto isso pq se vc tá fazendo algum tipo de navegação o hgraphicbutton vai “sentir falta” de outra imagem como parâmetro…
Vc reparou se tem alguma excessão no prompt de comando do xletview?! (às vezes não dá erro nenhum, mas no meio de um processo, pode aparecer um monte de excessão, e a eliminação dessas excessões pode ser a solução dos seus problemas)

gente alguém pode me ajudar com algumas coisas tb d xlets???
pelo amor de Deussssssssssssss
me mande mp por favor

Bom,
Vai no site da YouLabs (www.youlabs.com.br) e você vai encontrar os tutoriais na sessão TV Digital.
A questão da imagem pode ser resolvida com um HIcon.
O texto com uma Label do Havi.
Veja os tutoriais e códigos de exemplo do site.
Att.

Thiago

Alguem Sabe se pode-se usar ArrayList para receber uma coleção de objetos de um banco de dados e usar esse Arraylist para exibição numa xletview?

pessoal, estou tendo dificuldades para referenciar um jar… Preciso que minha aplicacao enxergue uma jar (api de xml), mas nao estou conseguindo… alguem sabe como fazer isso no xletview?

Estou com a mesma dúvida que vc Marcos,

Vc obteve sucesso?

E sobre os exemplos do YOULABS, o site não está mais no ar…
alguem tem os exemplos e tutoriais deles?

Grato,

public class ExemploXlet implements Xlet, KeyListener { private XletContext context; private HScene scene; private HStaticText label1, label2; public ExemploXlet() { } public void initXlet(XletContext xletContext) throws XletStateChangeException { this.context = xletContext; } public void startXlet() throws XletStateChangeException { HSceneFactory hsceneFactory = HSceneFactory.getInstance(); scene = hsceneFactory.getFullScreenScene(HScreen.getDefaultHScreen(). getDefaultHGraphicsDevice()); scene.setSize(640, 480); scene.setLayout(null); scene.addKeyListener(this); label1 = new HStaticText("Al\u00F4 MundoJava!", 35, 45, 660, 50, new Font("Tiresias", 1, 36), Color.red, Color.white, new HDefaultTextLayoutManager()); label2 = new HStaticText("Controle Remoto", 100, 135, 500, 30, new Font("Tiresias", 1, 36), Color.red, Color.white, new HDefaultTextLayoutManager()); scene.add(label1); scene.add(label2); scene.setVisible(true); scene.requestFocus(); } public void pauseXlet() { } public void destroyXlet(boolean unconditional) throws XletStateChangeException { if (scene!=null) { scene.setVisible(false); scene.removeAll(); scene = null; } context.notifyDestroyed(); } /* Método de java.awt.event.KeyListener */ public void keyTyped(KeyEvent keyevent) { } /* Método de java.awt.event.KeyListener */ public void keyReleased(KeyEvent keyevent) {} /* Método de java.awt.event.KeyListener */ public void keyPressed(KeyEvent e) { String mensagem = ""; int codigo = e.getKeyCode(); switch (codigo) { case 48: case 49: case 50: case 51: case 52: case 53: case 54: case 55: case 56: case 57: mensagem += "Bot\u00E3o num\u00E9rico: "+(codigo-48); break; case 403: mensagem += "Bot\u00E3o Vermelho"; break; case 404: mensagem += "Bot\u00E3o Verde"; break; case 405: mensagem += "Bot\u00E3o Amarelo"; break; case 406: mensagem += "Bot\u00E3o Azul"; break; case 27: mensagem += "Bot\u00E3o EXIT"; break; case 10: mensagem += "Bot\u00E3o OK"; break; case 151: mensagem += "Bot\u00E3o Asterisco (*)"; break; case 520: mensagem += "Bot\u00E3o grade (#)"; break; case 38: mensagem += "Seta para cima"; break; case 40: mensagem += "Seta para baixo"; break; case 37: mensagem += "Seta para esquerda"; break; case 39: mensagem += "Seta para direita"; break; default: mensagem += "Al\u00F4 MundoJava!"; } label2 = new HStaticText(mensagem, 100, 135, 500, 30, new Font("Tiresias", 1, 36), Color.blue, Color.white, new HDefaultTextLayoutManager()); scene.removeAll(); scene.add(label1); scene.add(label2); label2.repaint(); scene.repaint(); } }

Este exemplo foi retirado da revista mundo java

Só para vc saber os exemplos que o site youlabs disponilibizou eram mais simples que este da mundo java, entao vc nao perdeu nada… rsrs