Foros del Web » Programación para mayores de 30 ;) » Java »

Consulta contador Simple

Estas en el tema de Consulta contador Simple en el foro de Java en Foros del Web. Hola a todos, soy el usuario "Athlit", que por algún motivo no me deja loguearme y me he creado otra cuenta. Si alguien me puede ...
  #1 (permalink)  
Antiguo 22/02/2011, 11:15
 
Fecha de Ingreso: febrero-2011
Mensajes: 672
Antigüedad: 13 años, 2 meses
Puntos: 78
Consulta contador Simple

Hola a todos,
soy el usuario "Athlit", que por algún motivo no me deja loguearme y me he creado otra cuenta.
Si alguien me puede decir qué esta pasando, se lo agradecería mucho.
Allá va:

He empezado con J2SE y me he creado un boton y una caja de texto, nada más.
En el botón, al pulsar quiero que salga un contador en la caja de texto:
Código PHP:
for (int i=0;i<10;i++){
            try{
            
Thread.sleep(1000);
            }catch (
Exception e){
                
e.printStackTrace();;
            }
           
jTextField1.setText(i+"");
        } 
En cambio, en vez de salir los numeros creciendo, la "aplicacion" se espera 10 segundos y me muestra el último número (el 9).
No debería ir viendo como va creciendo? 1, 2, 3....

Muchas gracias a todos y un saludo.

Athlit
  #2 (permalink)  
Antiguo 22/02/2011, 11:44
 
Fecha de Ingreso: enero-2008
Mensajes: 614
Antigüedad: 16 años, 4 meses
Puntos: 57
Respuesta: Consulta contador Simple

Posiblemente si se actualiza el texto despues de dormir durante 1 segundo, pero no se alcanza a actualizar la pantalla cuando ya se durmio de nuevo. Podrias tratar haciendo un repaint al jTextField despues del setText
  #3 (permalink)  
Antiguo 22/02/2011, 11:54
 
Fecha de Ingreso: febrero-2011
Mensajes: 672
Antigüedad: 13 años, 2 meses
Puntos: 78
Respuesta: Consulta contador Simple

Cita:
Iniciado por posman Ver Mensaje
Posiblemente si se actualiza el texto despues de dormir durante 1 segundo, pero no se alcanza a actualizar la pantalla cuando ya se durmio de nuevo. Podrias tratar haciendo un repaint al jTextField despues del setText
Hola posman,
en primer lugar muchas gracias por contestar.
He probado lo que me comentas, pero sigue haciendo lo mismo.
Como "curiosidad", diré que cuando apreto el botón para que me empiece el bucle, éste se queda apretado hasta que acaban los 10 segundos....
¿Alguna idea?
¿Debo meterme ya con hilos para este ejemplo tan aparentemente simple?

Muchas gracias por todo.

Athlit
  #4 (permalink)  
Antiguo 22/02/2011, 13:41
Avatar de sivadmp  
Fecha de Ingreso: febrero-2011
Ubicación: La Paz - Bolivia
Mensajes: 293
Antigüedad: 13 años, 2 meses
Puntos: 20
Pregunta Respuesta: Consulta contador Simple

Hola lo que puedes realizar es, utilizar hilos o utilizar el evento ActionListener

este codigo espero que te ayude
Código PHP:
Ver original
  1. [B]public class Contador extends JLabel implements ActionListener {
  2.     private static final long serialVersionUID = 1L;
  3.  
  4.     public Contador() {
  5.         Timer t = new Timer(1000, this);
  6.         t.start();
  7.         setHorizontalAlignment(JLabel.CENTER);
  8.     }
  9.  
  10.     private int cont = 0;
  11.  
  12.     public void actionPerformed(ActionEvent ae) {
  13.         cont++;
  14.         setText(String.valueOf(cont));
  15.     }
  16.    
  17.     public static void main(String[] args) {
  18.         JFrame f=new JFrame();
  19.         f.add(new Contador(),BorderLayout.CENTER);
  20.         f.setSize(200,200);
  21.         f.setVisible(true);
  22.     }
  23. }[/B]

espero haberte ayudado, cualquier cosa mi correo es

[EMAIL="[email protected]"][email protected][/EMAIL]
  #5 (permalink)  
Antiguo 23/02/2011, 02:25
 
Fecha de Ingreso: febrero-2011
Mensajes: 672
Antigüedad: 13 años, 2 meses
Puntos: 78
Respuesta: Consulta contador Simple

Cita:
Iniciado por sivadmp Ver Mensaje
Hola lo que puedes realizar es, utilizar hilos o utilizar el evento ActionListener

este codigo espero que te ayude
Código PHP:
Ver original
  1. [B]public class Contador extends JLabel implements ActionListener {
  2.     private static final long serialVersionUID = 1L;
  3.  
  4.     public Contador() {
  5.         Timer t = new Timer(1000, this);
  6.         t.start();
  7.         setHorizontalAlignment(JLabel.CENTER);
  8.     }
  9.  
  10.     private int cont = 0;
  11.  
  12.     public void actionPerformed(ActionEvent ae) {
  13.         cont++;
  14.         setText(String.valueOf(cont));
  15.     }
  16.    
  17.     public static void main(String[] args) {
  18.         JFrame f=new JFrame();
  19.         f.add(new Contador(),BorderLayout.CENTER);
  20.         f.setSize(200,200);
  21.         f.setVisible(true);
  22.     }
  23. }[/B]

espero haberte ayudado, cualquier cosa mi correo es

[EMAIL="[email protected]"][email protected][/EMAIL]
Hola sivadmp,
muchas gracias por tu respuesta.

Probaré lo que me comentas, debe ser eso seguro!

Un saludo.

Etiquetas: contador, simple
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:29.