tenho uma tela, onde há um componente do tipo jTextField. Lá dentro irei ter um contador do seguinte formato (mm:ss), ou seja, minutos e segundos. COmo faço para ele mostrar os minutos e segundos passando realemente, ou seja, contando em tempo real os minutos e segundos?? Depois, quando clicasse em um botao e mandasse gravar no banco, ele deveria gravar no banco o horário que eu cliquei no botao.
Isto necessita de thread??
voce deve ter duas etapas distintas:
uma que eh o botao, que ao ser clicado ira pegar o tempo real e ira gravar no banco de dados
outra eh uma Thread que updata o valor do field a cada um segundo, mas preste atencao, nao salve o valor do field e sim um valior pego no momento do botao ser clicado!
Threadt=newThread(){publicStringpegaData(){// codigo que retorna a data, veja o tutorial sobre data}publicvoidrun(){while(true){field.setValue(pegaData());// dorme um segundoThread.sleep(1000);}}}t.start();
Ai esta o codigo. Ele primeiro cria uma thread e comeca ela, que ira rodar para sempre (while(true)), mudando o valor do field e dormindo 1 segundo..
Eu nao tenho como lembrar agora a excecao que pode ser throwada no Thread.sleep, mas voce deve incluir um try/catch ao redor da chamada.
Abraco
Guilherme
C
Carlos_H
Apenas complementando a resposta do guilherme, a exceção que é jogada é a java.lang.InterruptedException, neste caso, o código ficaria assim:
Threadt=newThread(){publicStringpegaData(){// codigo que retorna a data, veja o tutorial sobre data}publicvoidrun(){while(true){field.setValue(pegaData());// dorme um segundotry{Thread.sleep(1000);}catch(InterruptedExceptionie){// tratamento....}}}}t.start();