Java não segue o código? [duplicado]
Esta questão já tem uma resposta aqui:
Loop não vê valor alterado por outro thread sem um comando print 1 respostaAqui está um trecho do código que eu acho que não segue o que o código deve fazer:
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(); }
}
}
Se eu comentar
System.out.println("Hi")
O código aparentemente não funciona. Se eu descomentar, então acontece!
Nota: o início é verdadeiro assim que você pressionar 's' para iniciar o jogo. No entanto, o método é chamado no começo, então "hi" deve ser exibido muitas vezes e indefinidamente até que eu pressione a tecla 's'.
Uma imagem diz mais que mil palavras, então eu vou te dar centenas de fotos (vídeo) para explicar o que eu quero dizer:https://dl.dropbox.com/u/2792692/CodeWeird.ogv
https://dl.dropbox.com/u/2792692/CodeWeird.wmv
Alguém pode me contar o que está acontecendo?