Método para trabalhar com minutos

Seguinte , eu recebo de meu servidor um numero int e eu devo
pegar esse numero e faze uma espécie de contagem regressiva
como se fosse em minutos por exemplo eu recebo um numero 40 do meu servidor
e devo ir regredindo como se fossem 40 minutos aí quando zerar eu fecharia o programa.
Eu ja ouvi algo sobre uma classe do java que faz isso mas nao lembro o nome, se alguem
puder so da uma dica agradeço.

Dá uma olhada nas classes Timer e TimerTask, elas devem resolver seu problema :wink:

Abraços!

Cara valeu pela dica mas nao sei se isso vai pode me ajuda, ou eu nao entendi bem
o funcionamento dessa classe.
meu problema eh q eu tenho que regredir um tempo etende dai apos esse tempo terminar meu
frame tem que ser fechado, e pelo que eu entendi esse timer recebe como parametro o tempo e executa
uma funçao quando chega nesse tempo, eu nao sei se funcionaria pq eu tenho que fica atualizando constantemente
um textfield que mostra o tempo regredindo.

Você precisará utilizar dois TimerTask, um que será o contador, responsável por exibir o valor em um JTextField e outro que fechará o JFrame.

Dá uma olhada neste exemplo:
Classe ExemploTimer

public class ExemploTimer {
	public static void main (String[] args){
		JFrame jFrame = new JFrame();
		JTextField txtContador = new JTextField();
		JPanel jPanel = new JPanel();
		
		long tempoTotal = 5000;//5 segundos para fechar o frame
		
		//Responsável pelo contador
		TimerContador contador = new TimerContador();
		//Responsável pelo Fechamento o JFrame
		TimerFechaFrame fechaFrame = new TimerFechaFrame();
		
		txtContador.setText(String.valueOf(tempoTotal));
		
		jPanel.setLayout(new GridLayout(1,2));
		jPanel.add(new JLabel("Contador Timer"));
		jPanel.add(txtContador);
		
		jFrame.setSize(800, 100);
		
		jFrame.add(jPanel);
		jFrame.setVisible(true);
		
		//Definindo componente e o tempo que fechará o Frame, para que o
		//contador possa saber de quantos milisegundos começar
		contador.setComponent(txtContador);
		contador.setTempo(tempoTotal);
		
		//Definindo o JFrame que será fechado
		fechaFrame.setFrame(jFrame);
		
		/*Aqui você define o TimerTask, tempo da primeira execução
		o tempo de intervalo entre as execuções
		isto indica que o JTextField será atualizado a cada segundo*/
		new Timer().schedule(contador, 1000, 1000);
		//Aqui o tempo para fechar o Frame
		new Timer().schedule(fechaFrame, tempoTotal);
	}
}

A classe TimerContador é o TimerTask responsável por atualizar o JTextField a cada segundo
Classe TimerContador

public class TimerContador extends TimerTask{
	//Componente que exibirá o tempo restante
	private JTextField component;
	private long tempo;
	
	//Aqui você define qual JTextField receberá o tempo restante
	public void setComponent(JTextField component) {
		this.component = component;
	}
	
	//Aqui você informa o tempo que passou no Timer que fechará o frame
	//lembrando que long = milisegundo
	public void setTempo(long tempo){
		this.tempo = tempo;
	}

	@Override
	public void run() {
		//Se o timer estiver vazio, populará o contador com o valor inicial
		if(component.getText() == null ||
				component.getText().length() == 0){
			component.setText(String.valueOf(tempo));
		}
		//Caso contrário, vai subtraindo 1000 (1 segundo) do tempo restante do contator
		else{
			long tempoRestante = Long.valueOf(component.getText()).longValue();
			component.setText(String.valueOf(tempoRestante - 1000));
		}
	}

}

A classe TimerFechaFrame é o TimerTask responsável por fechar o JFrame
Classe TimerFechaFrame

public class TimerFechaFrame extends TimerTask {

	//Frame que será fechado
	public JFrame frame;
	
	//Define o JFrame que serpa fechado
	public void setFrame(JFrame frame) {
		this.frame = frame;
	}

	@Override
	public void run() {
		//Fecha o JFrame
		frame.setVisible(false);
		
		//Para finalizar todo o sistema você precisa
		//utilizar o método exit do System
		
		//System.exit(0);
	}

}

Qualquer coisa eu anexei classes que usei p/ o teste.
Espero ter ajudado.

Abraços

Amigo, obrigado mesmo era bem isso que eu tava precisando
so tem um probleminha na parte de fechar o frame
ele ta zerando o cronometro e ao invez de feichar ele continua contando
numeros negativos, nao consegui encontra o problema!
abraço

No TimerContador é só você colocar mais um if dentro do else para checar se já acabou o tempo, desta forma:

	@Override
	public void run() {
		//Se o timer estiver vazio, populará o contador com o valor inicial
		if(component.getText() == null ||
				component.getText().length() == 0){
			component.setText(String.valueOf(tempo));
		}
		//Caso contrário, vai subtraindo 1000 (1 segundo) do tempo restante do contator
		else{
			long tempoRestante = Long.valueOf(component.getText()).longValue();

			//Aqui você checa se já acabou o tempo para parar o timer
			if((tempoRestante - 1000) <= 0){
				cancel();
			}
			else{
				component.setText(String.valueOf(tempoRestante - 1000));
			}
		}
	}

Cara valeu quanto a parte de parar o cronometro tranquilo
mas eu me refiro a parte de feichar o frame

//Aqui o tempo para fechar o Frame new Timer().schedule(fechaFrame, tempoTotal);
ele deveria contar ate o valor (tempoTotal) e chamar o metodo fechaFrame neh??
só que ele simplesmente para o cronometro e fica lá como se nao estivesse chamando o metodo

[quote=c1c3r00]Cara valeu quanto a parte de parar o cronometro tranquilo
mas eu me refiro a parte de feichar o frame

//Aqui o tempo para fechar o Frame new Timer().schedule(fechaFrame, tempoTotal);
ele deveria contar ate o valor (tempoTotal) e chamar o metodo fechaFrame neh??
só que ele simplesmente para o cronometro e fica lá como se nao estivesse chamando o metodo
[/quote]

Estranho…

Vc viu se ele lançou alguma Exception?

Vc definiu o frame q será fechado com o setFrame?

//Definindo o JFrame que será fechado fechaFrame.setFrame(jFrame);

O tempo total é o tempo inicial do cronômetro?

Abraços

Olha passei o frame certinho que deverá ser fechado
bom ele nao gerou nenhum erro
simplesmente para no 1. e nao faz nada
bom eu nao sei bem a funcionalidade da timetask seria de chamar a função
fecha frame quando o tempo chegar ao (tempoTotal) neh
por exemplo eu estou definindo q o tempoTotal eh o tempo
que o usuario tem que quando ele zerar o frame fecha
minha logica ta correta?