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 !
Timer timer = new Timer(1000, actionListener);
, onde actionListener é um objeto cujo método addActionListener() contém o código de atualização do JLabel com a hora capturada do sistema. Use o método timer.start() para iniciar o temporizador, e timer.stop() para encerrá-lo. Ok?
davidbuzatto
Cuidado!
Os componentes swing não são thread safe!
Vc vc precisar usar o método SwingUtilities.invokeLater para fazer a atualização do teu jlabel...
// cria um novo Atualizador e usa como argumento no invokeLaterSwingUtilities.invokeLater(newAtualiza());// classe interna privada que implementa o atualizador do jlabelprivateclassAtualizadorimplementsRunnable{publicvoidrun(){while(true){// atualize seu jlabel akiThread.sleep(500);// aqui vem o tempo q vai demorar para atualizar}}}
Falow!
davidbuzatto
Desculpa, tava dando uma olhada na classe javax.swing.Timer e ela já implementa de uma forma segura a atualização. Todo caso, fica ai a dica