Galera…eu tenho uma JProgressBar dentro de um JPanel…eu a faço trabalhar com Threads…
Ela funciona legal, carrega a procentagem filé…(porém somente na primeira vez, em quanto ela é visivel)
no final da execução eu digo que o painel que ela esta fique invisivel…
Quando eu mando que ele fique novamente visivel ele não aparece mais…
aqui esta meu codigo.
public void startProgress(){
jPanel3.setVisible(true);
boolean saida=false;
xxx x= new xxx();
x.start();
for(int i=0;i<100044;i++){
System.out.println(i);
}
saida=true;
if(saida){
try {
x.setProgress(80);
Thread.sleep(1000);
x.setProgress(100);
Thread.sleep(1000);
} catch (InterruptedException ex) {
Logger.getLogger(telaInicial.class.getName()).log(Level.SEVERE, null, ex);
}
jPanel3.setVisible(false);
x.setParada(true);
x=null;
}
}
private class xxx extends Thread{
int progress;
boolean condition=true;
boolean parada=false;
public void setParada(boolean b){
parada=b;
}
public void setProgress(int i){
condition=false;
this.progress=i;
}
public void run(){
int x = 100;
//int progress;
for(int i=10; i<x; i++)
{
if(parada)break;
try {
if(condition)
progress = (100 * (i + 1)) / x;
System.out.println(progress);
jProgressBar1.setValue(progress);
jProgressBar1.setStringPainted(true);
jProgressBar1.getUI().update(jProgressBar1.getGraphics(), jProgressBar1);
Thread.sleep(250);
} catch (InterruptedException ex) {
Logger.getLogger(telaInicial.class.getName()).log(Level.SEVERE, null, ex);
}
}
System.out.println ("acabou a thread");
}
}