Threads

3 respostas
iranildocarlos

Gostaria de saber como executar oum relógio pois o meu código só fica repetindo o mesmo numero.

new Thread(){	

public void run(){

for(;;){		

hora = relogio.get(Calendar.HOUR_OF_DAY);

minuto = relogio.get(Calendar.MINUTE);

segundos = relogio.get(Calendar.SECOND);

System.out.println(hora+":"+minuto+":"+ segundos);
try{
	        sleep(1000);
	         }catch(InterruptedException e){
	    	   JOptionPane.showMessageDialog(null, "Erro de exceção Thread");
	    	   System.out.println("Erro "+e.getLocalizedMessage()); 
	    	   e.printStackTrace();
	    	   return;
	    	    
	         }
	    }
	} 

}.start();

3 Respostas

tveronezi

Imagino que “relogio” seja do tipo “Calendar”.
Se for, vc terá que chamar…

relogio.setTime(new Date());

antes de chamar os métodos “get”.

R_chieck

Ola, se eu fosse ter de fazer
-usaria um while(true) ou melhor que isso while(rodando==true) ao invez de seu for
-tambem faria como o tveronezi falou, mas apenas se precisar recursos de um calendar. Poderia ser feito em uma linha, pois poderias usar um Date para a data/hora formatar com um SimpleDateFormat e printar, exemplo:

System.out.println(new SimpleDateFormat("hh:mm:ss").format(new Date()));

claro que criar cada vz um novo SDF não é a melhor prática, podes criá-lo fora do laço e apenas chamar no print.

iranildocarlos

Obrigado resolvido não tinha instanciado.

Criado 3 de julho de 2012
Ultima resposta 4 de jul. de 2012
Respostas 3
Participantes 3