Como te promedi, he realizado un ejemplo de tu progressbar, pero no es la gran cosa, es un ejemplo sencillo, aunque no es la gran cosa... JProgressBar barra = new JProgressBar(); barra.setStringPainted(true); barra.setMaximum(100); barra.setValue(0); Timer tim = new Timer(); TimerTask tarea = new TimerTask() { @Override public void run() { cont_mil++; if (cont_mil == 1000) { cont_mil = 0; cont_s++; if (cont_min > 0) { if(bandera=false){ TA.append("Completado el minuto"); bandera=true; } } else { porcentaje = (int) ((cont_s * 100) / 60); barra.setValue(porcentaje); if(bandera==false){ TA.append(String.format("Completado %d%% del minuto.\n", porcentaje)); TA.setCaretPosition(TA.getText().length()); } } } if (cont_s == 60) { cont_s = 0; cont_min++; } if (cont_min == 60) { cont_min = 0; cont_h++; } if (cont_h == 24) { cont_mil = 0; cont_s = 0; cont_min = 0; cont_h = 0; } milisegundos.setText(cont_mil + ""); if (cont_s < 10) { segundos.setText("0" + cont_s); } else { segundos.setText(cont_s + ""); } if (cont_min < 10) { minutos.setText("0" + cont_min); } else { minutos.setText(cont_min + ""); } if (cont_h < 10) { horas.setText("0" + cont_h); } else { horas.setText(cont_h + ""); } } }; tim.scheduleAtFixedRate(tarea, 0, 1); Este ejemplo usa un temporizador para hacer un cronometro, y la barra de progreso se setea con los valores del porcentaje de los primeros 60 segundos en 1 minuto. Quiero decir que en el primer minuto, se va a sacar el porcentaje de cada segundo con respecto a 1 minuto y se va a setear al progress bar, simplemente con hacer Barra. SetValue(VALOR); se le asigna en que valor se encuentra la barra y listo. Si no entiendes el ejemplo mi correo es dimondi21_89@hotmail.com mandame un mail para mandarte el proyecto java.