Bom pessoal, tô criando um joguinho e quero colocar um tempo nele. Quero que o tempo fique visível na tela, pro usuário.
Tentei usar a classe timer, mas não consegui
tempo.schedule(new TimerTask() {
@Override
public void run() {
// TODO Auto-generated method stub
temp.setText(""+nTempo);
nTempo-=1;
}
}, 1000,1000);
Como podem ver, o que eu quero é atualizar o label a cada 1 segundo
Obs: estou usando o Scene Builder pra fazer as telas
Eu aprendi a usar uma classe chamada timeline, porém em parte. Ela demora 1 segundo pra começar a executar.
Vou explicar melhor:
Criei uma Label chamada lbT. Ela contém o texto (no FXML) T. Eu consigo atualizar o tempo de boa, mas queria que ele começasse em 45 (número que eu defini na variavel int nTempo=45;). e não em T.
Exemplificando melhor ainda:
T
45
44
43
42
…
Método para executar o timeline:
public void tempo() {
Timeline segundos = new Timeline();
KeyFrame kFrame = new KeyFrame(Duration.millis(1000), e-> setTempo());
segundos.getKeyFrames().add(kFrame);
segundos.setCycleCount(46);
segundos.play();
}
Método setTempo (para setar o nTempo)
public void setTempo() {
lbT.setText(""+nTempo);
nTempo--;
}
Queria que já começasse em 45, não em T.
Agradeço desde já