Implemantar um cronometro

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.