Java - While y JFrame

   
Vista:

While y JFrame

Publicado por Nicolas (1 intervención) el 05/10/2013 00:23:01
Hola gente como va?

Tengo una duda con un programa en el que estoy trabajando, a ver si me pueden ayudar..

Tengo un while donde por cada valor que toma i (contador) me deberia ir aumentando el valor de una barra de progreso y solo lo hace cuando sale del ciclo. Es decir cuando termina el ciclo while me llena la barra entera y al mismo tiempo me cambia el valor a 100 % en el titulo de la ventana..

Espero que se haya entendido...Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

While y JFrame

Publicado por Vicente (56 intervenciones) el 05/10/2013 09:02:47
Pega el código y vemos el fallo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

While y JFrame

Publicado por Nicolas (2 intervenciones) el 05/10/2013 17:11:05
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
package unsm;
import javax.swing.JDesktopPane;
import javax.swing.JFrame;
import javax.swing.JProgressBar;
 
public class Unsm extends JFrame {
 
    private int nivel= 0 ;
    private JProgressBar barra;
 
    public Unsm(){
    JDesktopPane fondo = new JDesktopPane();
    barra  = new JProgressBar();
    barra.setBounds(10,20,450,10);
    fondo.add(barra);
    this.add(fondo);
    this.setTitle("Titulo");
    this.setSize(500,500);
    llenarbarra();
    }
 
    public void llenarbarra(){
         int i = 2;
         while (i<=100) {
              if((i%10)==0){
              nivel = nivel +10;
              barra.setValue(nivel);
         }
              try {
                  Thread.sleep(200);
             } catch (Exception e) {
                  System.out.println("ERROR "+e);
             }
             System.out.println(" % "+nivel+" valor i"+i);
        i++;
     }
    }
    public static void main(String[] args) {
       Unsm u = new Unsm();
       u.show();
    }
}

Estoy seguro que viene por el lado del constructor y habra que implementar algo con threads pero escucho algunas sugerencias para ver la solucion mas facil
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

While y JFrame

Publicado por UnoPorAhi (128 intervenciones) el 05/10/2013 23:20:54
Buenas,

No es una cuestion de crear o no un thread sino que no entiendes como funciona el modelo de eventos de swing.
Todo el entorno grafico construido por swing se ejecuta en un thread especial llamado Event Dispatching Thread:
http://en.wikipedia.org/wiki/Event_dispatching_thread

Cuando hayas leido bien al respecto, consulta este ejemplo, ya que la solucion pasa por utilizar un swingworker, the es un thread especial que permite realizar procesos en background e interacturar con el EDT para refrescar su estado sin bloquearlo:
http://www.java2s.com/Tutorial/Java/0240__Swing/SwingWorkerandProgressBar.htm


Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar