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…
Valeu a força!!!