¿Java no sigue el código? [duplicar]
Esta pregunta ya tiene una respuesta aquí:
Loop no ve el valor cambiado por otro hilo sin una declaración de impresión 1 respuestaAquí hay un fragmento del código que creo que no sigue lo que debería hacer el código:
public void updateTimeElapsed() {
timeElapsedLabel.setText("Time elapsed: " + ((System.nanoTime() - time) / Math.pow(10, 9)));
}
public void updateTimeElapsedIndefinitely() {
while (true) {
//System.out.println("Hi");
//TODO: Why this no work?
if (start) { System.out.println("Shoulda'"); updateTimeElapsed(); }
}
}
Si comento
System.out.println("Hi")
El código aparentemente no funciona. Si lo descomento, entonces lo hace!
Nota: el inicio es verdadero tan pronto como presionas 's' para iniciar el juego. Sin embargo, el método se llama al principio, por lo que "hi" se debe mostrar muchas veces e indefinidamente hasta que presione la tecla 's'.
Una imagen vale más que mil palabras, así que te daré cientos de imágenes (video) para explicar lo que quiero decir:https://dl.dropbox.com/u/2792692/CodeWeird.ogv
https://dl.dropbox.com/u/2792692/CodeWeird.wmv
¿Alguien puede decirme qué está pasando?