Problemas com Thread?

1 resposta
arec_metafora

Olá pessoal!

É minha estréia no fórum e estou com uma dúvida, não sei se é thread ou se é outra coisa…

Eu estou carregando fotos de pessoas para um formulário de cadastro. Coisa básica. Porém, antes de eu pegar a foto e colocar no formulário (imprimindo em um panel, por exemplo) eu redimensiono ela.
Isso gasta tempo de processamento pacas, dando um certo ‘lag’ na app.

Bom, por conta disso, antes de redimensionar a foto eu quero colocar uma janelinha do tipo: “por favor, espere, carregando arquivo…”
Já fiz ela (do tp java.awt.JWindow) e adicionei um JLabel nela. Está funcionando de boa. O problema é o setVisible()…

Eu estou setando visível logo antes do código de redimensionamento, e a tela só vai ser visível depois de redimensionar o código! Aí eu não preciso mais dela pô! (Ps: a janela aparece, mas o label não! Acho que o java cede o tempo de repintar a janela para o rocessamento do resto do programa, sei lá, to numa dúvida cruel!!!)

O código está, a grosso modo, assim…


frameWait.setVisible(true);
panelFoto.setImage(caminhoImagem); // Aqui ele redimensiona a foto
frameWait.setVisible(false); // A tela aparece, mas os componentes dela, JLabels não

Tem como forçar a espera de execução do método setVisible(…)??

O que q eu faço??? :cry:

1 Resposta

arec_metafora

Só um append…

Eu estava lendo a API e descobri o seguinte:
Swing’s Thread Policy is not safe

Será que é isso msm que eu falei! Não dá pra confiar na Thread do Swing…
tentei o método SwingUtilites.invokeAndWait() e tbm não deu certo…

A saga continua…

Criado 14 de janeiro de 2008
Ultima resposta 14 de jan. de 2008
Respostas 1
Participantes 1