Relógio

Ola pessoal !!

sou novo em java, e to com uma dúvida, como eu faria um relógio em java?, estou tentando desenvolver mais não esta adiantando, não sei quais funções usar…se alguem poder me ajudar, muito obrigado !!!

valeu!

se o que vc esta pensando em fazer é um cronometro
use esse codigo aqui

/**

  • Engenharia da Computação
  • Descrição: Cria um cronometro
  • Data: 23/08/2007
    */
    package SdkN.Contador;

/**

  • @author Nielsen

*/
public class Cronometro implements Runnable
{
private long inicio;

private long minuto;
	
private long segundo;

private long milisegundo;

public Cronometro()
{
	inicio = 0;
	milisegundo = 0;				
	new Thread(this).start();
}
public void run()
{
	inicio = System.currentTimeMillis();
}
/**
 * Retorna o tempo em milissegundos
 */
public long milissegundos()
{
	synchronized (this)
	{
		return milisegundo = System.currentTimeMillis() - inicio;
	}
}
/**
 * Retorna o tempo em segundos
 */
public long segundos()
{
	synchronized (this)
	{
		return  segundo = milissegundos() /1000;
	}
}
/**
 * Retorna o tempo em minutos
 */
public long minuto()
{
	synchronized (this)
	{
		return minuto = milissegundos()/100000;
	}
}

}

tenho uma duvida, para que serve o :

inicio = System.currentTimeMillis();

valeu…

Este método te retorna um long com os millisegundos atuais do seu sistema(SO)…

Um velho exemplo(adapte a sua necessidade):

[code]
import javax.swing.;
import java.awt.
;
import java.awt.event.;
import java.util.
;
import javax.swing.JPanel;
import javax.swing.JFrame;

public class Clock implements ActionListener {

private javax.swing.Timer timer; 
private Date data; 
private JLabel label=new JLabel();; 
private static JFrame frame=new JFrame("Relógio"); 

public Clock(){ 
   montaTela();
   disparaRelogio(); 
} 
public void montaTela(){
	  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    
   label.setFont(new Font("Itálico", Font.ITALIC, 25)); 
   JPanel panel = new JPanel(); 
   panel.add(label); 
   panel.setLayout(new FlowLayout(FlowLayout.CENTER)); 
   
   frame.getContentPane().add(panel); 

   frame.setResizable(false); 
   frame.setBounds(250, 200, 150, 80); 
   frame.setLocationRelativeTo(null);
   frame.setVisible(true); 
	} 

public void disparaRelogio() { 
   if (timer == null) { 
      timer = new javax.swing.Timer(1000, this); 
      timer.setInitialDelay(0); 
      timer.start(); 
   } else if (!timer.isRunning()) { 
      timer.restart(); 
   } 
} 

public void actionPerformed(ActionEvent ae) { 
   GregorianCalendar calendario = new GregorianCalendar(); 
   int h = calendario.get(GregorianCalendar.HOUR_OF_DAY); 
   int m = calendario.get(GregorianCalendar.MINUTE); 
   int s = calendario.get(GregorianCalendar.SECOND); 

   String hora = 
      ((h < 10) ? "0" : "") 
         + h 
         + ":" 
         + ((m < 10) ? "0" : "") 
         + m 
         + ":" 
         + ((s < 10) ? "0" : "") 
         + s; 

   label.setText(hora); 
} 
public static void main(String args[]) {
	     try{
	     javax.swing.SwingUtilities.invokeLater(new Runnable() {
         public void run() {	
	         new Clock();}
                  });  
	         }
	     catch(Exception e){
	     	e.printStackTrace();
	     	System.err.println("ERRO interno de execução!");
	     	}     
} 

}[/code]

O post abaixo, e os dois após ele (página 2), mostram 3 maneiras diferentes de se fazer isso:
http://www.guj.com.br/posts/list/52964.java#279083

A última é a mais simples.

valeu ViniGodoy!
achei legal a ultima, era mais ou menos isto que eu tava querendo…mas sera que nao teria como criar um cronometro que poderia parar na que quiser com um botão, alguem saberia me dizer?
bom valeu…

A última classe Timer descrita, do Swing, tem o método stop.

[quote=nielsen.tekla]se o que vc esta pensando em fazer é um cronometro
use esse codigo aqui

/**

  • Engenharia da Computação
  • Descrição: Cria um cronometro
  • Data: 23/08/2007
    */
    package SdkN.Contador;

/**

  • @author Nielsen

*/
public class Cronometro implements Runnable
{
private long inicio;

private long minuto;
	
private long segundo;

private long milisegundo;

public Cronometro()
{
	inicio = 0;
	milisegundo = 0;				
	new Thread(this).start();
}
public void run()
{
	inicio = System.currentTimeMillis();
}
/**
 * Retorna o tempo em milissegundos
 */
public long milissegundos()
{
	synchronized (this)
	{
		return milisegundo = System.currentTimeMillis() - inicio;
	}
}
/**
 * Retorna o tempo em segundos
 */
public long segundos()
{
	synchronized (this)
	{
		return  segundo = milissegundos() /1000;
	}
}
/**
 * Retorna o tempo em minutos
 */
public long minuto()
{
	synchronized (this)
	{
		return minuto = milissegundos()/100000;
	}
}

}
[/quote]
tentei compilar este programa mas nao deu certo, primeiro estava dando erro no main (pois faltava…), mas despois de eu ter colocado um main, esta dando erros…

nao achei este metodo stop,:frowning: eu digo se teria um jeito de fazer uma especie de cronometro que eu poderia parar na hora que deseja se… ainda num tenho muitos conceitos de java, ainda tem muitas funções que não conheço, ai é meio foda…mais valeu.

Que erros?

esta dando que o erro "Exception in thread “main” java.lang.NoclassDefFoundError: Cronometro…

nao sei onde que esta errado…:frowning: