¿cómo implementar un progressBar?

Iniciado por kinos, 6 Junio 2010, 23:34 PM

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

kinos

Buenas.

Estoy utilizando un jInternalFrame y quiero que cuando le das a la X de cerrar te salga un jDialog y te pregunta si quieres guardar y tal. Una vez que pulsas si o no, si pulsas "si" me debe lanzar una ventanita con un progressBar (JDialog). Mientras, va guardando lo que tenga que guardar... y una vez terminado de guardar se cierra el jInternaFrame.

El problema es que no consigo que me muestre el contenido del frame del progressBar (jDialog). Me sale el marco pero no lo que contiene, no sale ni el jTextArea ni el jProgressBar. Si lo pongo como modal, a true, si que se muestra pero no puedo guardar las cosas hasta que no lo cierro.

He leído que hay que iniciarlo con algo de Event dispatching thread pero no consigo nada.

Me podéis explicar algo?

Chuidiang

Hola:

Hay un hilo de java que se encarga de pintar las ventanas. Si dibujas el progress bar en ese hilo, haces las tareas que tengas que hacer en ese hilo e incrementas el progress bar en ese hilo, no lo estás dejando libre para que pinte el progress bar y se le vea avanzar. Las tareas y el incremento del progress bar debes hacerlo en un hilo separado, que no sea directamente en el actionPerformed() de un botón o el keyListener() de teclado (en general, en ningún evento de teclado o ratón).

Una opción que da java es usar un SwingWorker http://chuwiki.chuidiang.org/index.php?title=Ejemplo_sencillo_con_SwingWorker

Si quieres ampliar un poco más esta información y ver cómo hacer la barra de progreso sin SwingWorker, echa un ojo en http://chuwiki.chuidiang.org/index.php?title=El_hilo_de_awt

Se bueno.