Meu applet desaparece ao rolar a barra de rolagem do browser

1 resposta
L

Pessoal, procurei algo semelhante no fórum, achei um post muito antigo (http://www.guj.com.br/posts/list/689.java#3275) que não tem a solução, então vamos lá.

Meu applet serve para exibir sinais na tela (veja um post antigo meu em http://www.guj.com.br/posts/list/88642.java#474119). Estes sinais são montados dentro do applet, pois o usuário pode manipulá-los para aumentar resolução ou fazer mediçoes de amplitude e tempo. Ele usa uma URL para baixar os dados e trabalhá-los internamente

Quando rolo a barra de rolagem do meu browser, os desenhos no applet somem. Já vi na Internet diversos sites de corretoras de valores que possuem applets que não somem quando a barra de rolagem é rolada, então há solução para o problema!!! Estou na caça há alguns dias e não consegui resolver. Tenho fé que aqui encontrarei uma ajuda!

Que parte do código preciso postar? Coloco o método paint() logo abaixo

if(pagina!=0) {
        Graphics2D g2d = (Graphics2D)g;

        g2d.setRenderingHint(RenderingHints.KEY_ALPHA_INTERPOLATION,RenderingHints.VALUE_ALPHA_INTERPOLATION_SPEED);
        g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
        g2d.setRenderingHint(RenderingHints.KEY_INTERPOLATION,RenderingHints.VALUE_INTERPOLATION_BILINEAR);
        g2d.setRenderingHint(RenderingHints.KEY_RENDERING,RenderingHints.VALUE_RENDER_SPEED);
        g2d.setRenderingHint(RenderingHints.KEY_STROKE_CONTROL,RenderingHints.VALUE_STROKE_DEFAULT);        
        g2d.setRenderingHint(RenderingHints.KEY_DITHERING,RenderingHints.VALUE_DITHER_ENABLE);        
        g2d.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS,RenderingHints.VALUE_FRACTIONALMETRICS_OFF); 

        jTextField1.setText("");
        jTextField2.setText("Página " + pagina);
        
        while(gera.isAlive());  // espera a geração das imagens
        
        g2d.drawImage(imagem[0].getImage(), 20,  50, 675, 40, null);
        g2d.drawImage(imagem[1].getImage(), 20, 100, 675, 40, null);
        g2d.drawImage(imagem[2].getImage(), 20, 150, 675, 40, null);
        g2d.drawImage(imagem[3].getImage(), 20, 200, 675, 40, null);
        g2d.drawImage(imagem[4].getImage(), 20, 250, 675, 40, null);
        g2d.drawImage(imagem[5].getImage(), 20, 300, 675, 40, null);
        g2d.drawImage(imagem[6].getImage(), 20, 350, 675, 40, null);
        g2d.drawImage(imagem[7].getImage(), 20, 400, 675, 40, null);
        g2d.drawImage(imagem[8].getImage(), 20, 450, 675, 40, null);
        g2d.drawImage(imagem[9].getImage(),20, 500, 675, 40, null);
        g2d.drawImage(imagem[10].getImage(),20, 550, 675, 40, null);
        g2d.drawImage(imagem[11].getImage(),20, 600, 675, 40, null);
        g2d.drawImage(imagem[12].getImage(),20, 650, 675, 40, null);
        g2d.drawImage(imagem[13].getImage(),20, 700, 675, 40, null);
        g2d.drawImage(imagem[14].getImage(),20, 750, 675, 40, null);
    }

Notem que chamo uma thread que gera as imagens (linha 15), assim posso colocar um JProgressBar pro usuário abrir o paciência e se divertir enquanto o applet trabalha… :smiley:

Valeu a força!!!

1 Resposta

L

O problema ocorre só com o desenho que eu fiz pelo g2d. Os botões não desaparecem.
Quando rolo a barra de rolagem do browser os botões que tenho no applet não desaparecem…
Há algum jeito de manter as figuras desenhadas, como os botões?

Obrigado!!

Criado 14 de outubro de 2008
Ultima resposta 17 de out. de 2008
Respostas 1
Participantes 1