quero setar num jlabel um relogio que apresente a data e hora local, o problema é que quando seto ele mete -me a hora mas os segundos ficam parados, eu gostaria que o relogio continuasse a funcionar, mudando os segundos, para me actualizar a hora ? o que devo fazer para isso ? terei de fazer um loop, para ele estar sempre a actualizar os segundos ? ou criar um thread ? alguem me pode dar o trecho de codigo para fazer isso funcionar ?<
obrigado desde ja !
Use um Timer, pra usar você vai precisar criar um ActionListener, no metodo actionPerformed() dele você seta a hora atual, e coloca ele pra rodar de 1 em 1 segundo...
ex.:
ActionListenerlistener=newActionListener(){publicvoidactionPerformed(){//seta a hora}};Timertimer=newTime(1000,listener);timer.start();
Depois só é concatenar horas + “:” + minutos + “:” + segundos…
H
HericksnakePJ
Eu fiz utilizando Thread.
No meu caso, as horas estão em um JTextField, aí é só vc mudar. O código ficou assim:
publicvoidrun(){// TODO Auto-generated method stubSimpleDateFormatformatter=newSimpleDateFormat("HH:mm:ss");while(true){Datehoje=newDate();Stringtempo=formatter.format(hoje);//Pega o tempo de acordo com a formataçãojTextField.setText(tempo);//Insere o tempo no TextFieldjTextField.repaint();// Atualiza a tela;try{Thread.sleep(1000);}catch(Exceptionerro){}}}