Pessoal:
 
Sou leigo em Java e estou precisando implementar uma pequena animação de texto sobrepondo uma figura JPG sem aquele horrivel efeito piscante.
Eu tentei criar o velho esquema de double_buffering, mas mesmo assim continua piscando, não consigo entender.
Toda vez que é chamado o método repaint a imagem do fundo entra lentamente (é um JPG de 640x480) no meu micro (Celeron 450).
O que eu estou fazendo de errado ?
Agradeço a atenção de todos.
Fábio.
 
Método Paint
 
    public void paint(Graphics g) {
        if(privez==1) // Na primeira vez eu crio o contexto gráfico
        {
           privez=0;
           // Cria buffer
           buffer = createImage(640, 480);
           // obtem e prepara contexto grafico associado
           gContexto = buffer.getGraphics();
           gContexto.setColor(Color.black);
           gContexto.fillRect(0, 0, 640, 480);
           gContexto.drawImage(logo,0,0,this); // Jpg 640x480
        }
 
        gContexto.setColor(Color.black);
        gContexto.fillRect(0, 0, 640, 480);
        gContexto.drawImage(logo,0,0,this);
        String frase="";
        frase=instru.substring(pos,pos+60);
        gContexto.setFont(new Font("Serif",Font.BOLD,40));
        gContexto.setColor(Color.blue);
        gContexto.drawString(frase,10,440);
        g.drawImage(buffer, getInsets().left, getInsets().top, this);
         try { // Espero meio segundo
              Thread.sleep(500);
         } catch (InterruptedException e) {
              e.printStackTrace();
         }
         pos=pos+1; // Troco a substring dando a impressao
         // de um texto que rola...
         if(pos>fim-61)
         {
              pos=1;
          }
              repaint();
          }
    }
 

Responder a