Foro de elhacker.net

Programación => Java => Mensaje iniciado por: juancaa en 23 Junio 2012, 04:14 am



Título: Duda sobre progressbar
Publicado por: juancaa en 23 Junio 2012, 04:14 am
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!


Título: Re: Duda sobre progressbar
Publicado por: antoni_anemi en 9 Julio 2012, 18:42 pm
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


Título: Re: Duda sobre progressbar
Publicado por: Proteus1989 en 9 Julio 2012, 20:03 pm
Puedes hacer un for de 0 a 100 y dentro del for pones una espera (Thread.sleep()).


Título: Re: Duda sobre progressbar
Publicado por: juancaa en 11 Julio 2012, 14:04 pm
Al final llegue a una solución al respecto, aquí les dejo mi codigo :

Código:
        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.