Duda sobre progressbar

Iniciado por juancaa, 23 Junio 2012, 04:14 AM

0 Miembros y 1 Visitante están viendo este tema.

juancaa

Buenas!! Hay alguna forma de rellenar una progressBar indicando tansolo el tiempo que va a tardar esta en llenarse?? o bien es obligatorio utilizar un timer y ir haciendo un set value sobre la progressbar ??

Un saludo y...
Gracias de antemano!
Que tengas un buen dia!

antoni_anemi

PSS PARA MANEJAR UN TIEMPO DETERMINADO POR TI MISMO SE UTILIZA EL TIMER
PERO SI QUIERES QUE EL TIEMPO DE LLENADO DEPENDA DE OTRA COSA O EVENTO COMO UN CICLO O LA CARGA DE FICHEROS TENDRIAS QUE HACER QUE EL set value 
DEPENDA DE EL EVENTO SUCEDIDO.

SI ME EXPLICARAS CON MAS DETALLE QUE QUIERES HACER CON EL PROGRESS BAR CON MUCHO GUSTO TE AYUDARE

Proteus1989

Puedes hacer un for de 0 a 100 y dentro del for pones una espera (Thread.sleep()).

juancaa

#3
Al final llegue a una solución al respecto, aquí les dejo mi codigo :


       delay = value*1000/ndivs;   // value es un valor en s, se multiplica por 1000 para que el timer tome ese valor como segundos y no milisegundos
                                              // ndivs son el numero de divisiones de la barra yo lo setee a 100, es decir 100 divisiones

       timer = new Timer (delay, new ActionListener () {
           public void actionPerformed (ActionEvent evt) {        
               if (jProgressBar.getValue()==ndivs) {
                   progress = 0;
                   //metodo a realizar cuando se completa el ciclo
               } else progress++;
               jProgressBar.setValue(progress);
           }
       });


De este modo obtengo una progressbar que se llena cada "value" segundos y en donde cada "value/ndivs" segundos la progressbar aumentara la cuenta de su estado en uno.

Ademas, para optimizar el funcionamiento de la progressbar añadi un thread para que al llegar a completar el ciclo la progressbar no se retrasase lo mas minimo.

Gracias por su ayuda, un saludo : fMtQr.
Que tengas un buen dia!