While executando muito rapido

2 respostas Resolvido
eclipse
Kassioburgadon

Estou com um problema no código,

Estou setando com um for as imagens na Label, no caso de ter 8 imagens ele setará 8 vezes na label, porém, o comando é muito rápido e ele só aparece a primeira imagem e a ultima, mesmo colocando um sleep, ele para de executar, porém não seta na label,

apenas seta quando coloco um JOptionPane.showMessageDialog, pois ele para de processar e seta a imagem, não sei se isso seria um muito processo, mas só joga na Label quando fica Stepping,

Gostaria de que o programa setasse a imagem, e aguardasse 3 segundos, mas realizando a forma do Sleep e Timer não funciona, ele só para o processamento mas não seta a Imagem, Deve ser igual ao Jprogress cada vez que se passa nele se eu colocar um SetValue no for, ele vai aparecer o primeiro valor e o ultimo

for(int i =0; i< comboBox_2.getItemCount();i++){

<a href="//System.out.println">//System.out.println</a>(i);

comboBox_2.setSelectedIndex(i);

File f = new File(Project/ + lblNewLabel_2.getText() + /img/+ comboBox_2.getSelectedItem());

try {

bufferedImage = ImageIO.read(f);

ii = new ImageIcon(bufferedImage);

System.out.println(f);

ii4 = new ImageIcon(ii.getImage().getScaledInstance(

scrollPane.getWidth(),scrollPane.getHeight(),

Image.SCALE_SMOOTH));

lblNewLabel.setIcon(ii4);

comboBox_3.setSelectedIndex(padrao);

scrollPane.setVerticalScrollBar(vertical);

scrollPane.setHorizontalScrollBar(horizontal);

t = new Timer(1000, al);

t.start();							

JOptionPane.showMessageDialog(null, barcode);

} catch (IOException e3) {

// TODO Auto-generated catch block

e3.printStackTrace();

}

2 Respostas

Rodrigo_Void

Vc vai precisar do sleep sim, porém mesmo com ele, a tela ficará travada até a finalização do método, onde então ela se atualizará. Para fazer um processamento em background e manter a thread da tela rodando vc precisa colocar este processo em uma outra thread.
Antes que pergunte COMO, tem mta coisa sobre isso no google e no próprio GUJ.

T
Solucao aceita

Aqui está o que vc precisa saber.

Processamento assíncrono - seque um link de referência sobre o assunto

Criado 17 de outubro de 2018
Ultima resposta 17 de out. de 2018
Respostas 2
Participantes 3