Ajuda com a classe Timeline do Java

3 respostas
javafxjava
H

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

3 Respostas

A

Alguma exception?

H

Sim

H

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á

Criado 20 de outubro de 2017
Ultima resposta 20 de out. de 2017
Respostas 3
Participantes 2