Implemantar um cronometro

3 respostas
R

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:

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;
        }
    }
}

Sei que vou precisar usar threads mas naum sei utiliza-las se alguem puder me dar uma força agradeço.

3 Respostas

R
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:
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;
        }
    }
}

Sei que vou precisar usar threads mas naum sei utiliza-las se alguem puder me dar uma força agradeço.

Ironlynx

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

R

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.

Criado 13 de outubro de 2007
Ultima resposta 14 de out. de 2007
Respostas 3
Participantes 2