Criei uma classe cronometro, nela estou capturando o System.currentTimeMillis() e depois fazendo as conversões para segundo minuto etc, so que preciso capturar esse tempo a todo instante, alguem ai sabe como fazer essa classe? o que fiz ate agora foi isso:
[code]public class cronometro implements Runnable{
private long inicio;
private long milisegundo;
private String tempo;
private int mil;
private int cent;
private int seg;
private int min;
private int hor;
/** Creates a new instance of cronometro */
public cronometro() {
inicio = 0;
milisegundo = 0;
new Thread(this).start();
}
public void run() {
inicio = System.currentTimeMillis();
System.out.println("aki");
}
/**
* Retorna o tempo em milissegundos
*/
public String milissegundos(){
synchronized (this){
milisegundo = System.currentTimeMillis() - inicio;
if(milisegundo < 1000){
mil++;
}
else{
mil = 0;
cent++;
}
if(cent < 100){
cent++;
}
else{
cent = 0;
seg++;
}
if(seg < 60){
seg++;
}
else{
seg = 0;
min++;
}
tempo = String.valueOf(min + ":" + seg + ":" + cent);
return tempo;
}
}
}[/code]
Sei que vou precisar usar threads mas naum sei utiliza-las se alguem puder me dar uma força agradeço.
[quote=Rafael_Castanho]Criei uma classe cronometro, nela estou capturando o System.currentTimeMillis() e depois fazendo as conversões para segundo minuto etc, so que preciso capturar esse tempo a todo instante, alguem ai sabe como fazer essa classe? o que fiz ate agora foi isso:
[code]public class cronometro implements Runnable{
private long inicio;
private long milisegundo;
private String tempo;
private int mil;
private int cent;
private int seg;
private int min;
private int hor;
/** Creates a new instance of cronometro */
public cronometro() {
inicio = 0;
milisegundo = 0;
new Thread(this).start();
}
public void run() {
inicio = System.currentTimeMillis();
}
/**
* Retorna o tempo em milissegundos
*/
public String milissegundos(){
synchronized (this){
if(mil < 1000){
mil++;
}
else{
mil = 0;
cent++;
}
if(cent < 100){
cent++;
}
else{
cent = 0;
seg++;
}
if(seg < 60){
seg++;
}
else{
seg = 0;
min++;
}
tempo = String.valueOf(min + ":" + seg + ":" + cent);
return tempo;
}
}
}[/code]
Sei que vou precisar usar threads mas naum sei utiliza-las se alguem puder me dar uma força agradeço.[/quote]
Rafael vc tá complicando um pouco… dá uma lida aqui:
http://www.guj.com.br/posts/list/52964.java#279083
e
http://www.guj.com.br/posts/list/63021.java
e pq vc precisa capturar esse tempo a todo instante?Se vc PRECISA realmente de MUITA precisão, use o nanotime(), mais aqui:
http://weblog.isallineed.net/javagui/archives/000137.html
Iron, naum ta dando muito certo, estou me baseando mais no ultimo link que vc me mandou, e naum to conseguindo fazer o que eu quero. eu quero fazer um cronometor MM:SS:CC(minutos, segundos e centesimos) e que ele fique sendo mostrado na minha frame, quero ver o tempo rodando e ainda depois quero que ele seja parado, e zerado.
É para cronometrar o tempo que um piloto leva para fazer uma volta ou uma parcial.
Achei varios em java script, mas naum to conseguindo usa-los, da muito erro de sintaxe, usa umas bibliotecas que naum tenho.