Para contador, como proceder?

Olá á todos, esse é meu primeiro tópico aqui no fórum e a minha duvida é a seguinte

Tenho esse código que tirei daqui do fórum mesmo

int i;
	for(i = 0; i < 86399; i++)
	{	try
		{	//Tenta pausar em 1000 milisegundos.
			Thread.sleep(1000);
		} 
		catch (InterruptedException e)
		{	//Erro na execução.
			System.out.println("ERRO");
		}
		//Mostra a contagem.
		System.out.println("Contando:" + i);

como podem perceber trata-se de uma espécie de contador, vou utiliza-lo com um Jframe criano um botão para inciar o contador e outro para parar, para iniciar eu até sei como fazer não consigo mesmo é saber como parar, e se possivel gostaria de receber na tela o tempo decorrido em horas.

Tenta abrir o repetidor dentro do try

try(CRIA E INICIA A THREAD AQUI) {
      for(int i=0;i<86399;i++){
           if(Thread.sleep(1000)){
           break;
          system.out.println(i);
           }
       }
} catch(InterruptedException e){
   system.out.println("Erro");
   }

Espero ter ajudado

1 curtida

Fala Dirley! Tudo certo?
Este contador que você diz, você usaria como cronometro? Em resumo, você quer iniciar a contagem, parar e poder reiniciar a contagem de onde você parou? Ou iniciar, parar e pronto?

Parar e pronto, mas preciso que ele tenha o limite de 23:59hs de duração, caso chegue a esse tempo ele encerra sózinho

Algo desse tipo?

import java.util.Scanner;

public class Cronometro implements Runnable{

	private static long inicial = 0;
	//24hrs 86400 * 1000; tempo máximo para executar, se chegar a isso para
	private static long tempo = 5000; 
	private static volatile boolean trabalhando = true;

	public static void main(String[] args) {
		Cronometro cronometro = new Cronometro();
		Cronometro.iniciar();
		new Thread(cronometro).start();
		
		try (Scanner t = new Scanner(System.in)) {
			String parar = t.next();
			if(!parar.equals("")) //digite qlq coisa para parar
				trabalhando = false;
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public static void iniciar() {
		inicial = System.currentTimeMillis();
	}

	public static void parar() {
		trabalhando = false;
	}

	@Override
	public void run() {	
		while(trabalhando){			
			try {
				if(System.currentTimeMillis() - inicial >= tempo) break;				
				System.out.println(String.valueOf( (System.currentTimeMillis() - inicial) /1000 ));
				Thread.sleep(1000);
			} catch (Exception e) {
				trabalhando = false;
			}			
		}
		System.out.println("Parou");
	}

}

Vou testar e ja passo o resultado

A principio deu varios erros corrigi alguns mas a maioria eu nem sei por onde começar

Quais erros? É só copiar o código que deve funcionar. Agora se você utilizar outros métodos prórpios dentro da thread, vai de sincronizar tudo.

Julio, desculpa a demora para responder e até mesmo agradecer, deu tudo certo, os erros eram aquelas exclamações que aparecem na lateral da IDE, muito obrigado pela ajuda.

Que bom que resolveu, amigo.
Não esqueça de marcar a resposta do colega como solução do problema. Assim, outros usuários poderão desfrutar de maneira mais eficiente da resposta.
Abraço.