Uso de funcionalidades de classes por outras classes !?!?

4 respostas
ThiagoA

E ai pessoal !
Tudo beleza !?

Sou novo no forum e em programação java,

e estou com duvida de como posso fazer um cronometro regressivo bem simples,
e utilizar uma outra classe frame para mostrar os segundos regressivamento;

public class Cronometro {

	static int sec = 5;
	static boolean loop = false;

	public static void main(String[] args) throws InterruptedException {
		
		while(loop == false){

			Thread.sleep(1000);
			sec--; 

			if(sec == 0)
				loop = true;

		}
	}
}
import javax.swing.JFrame; 

public class Janela {    

	public static void main(String[] args) {
		JFrame frame = new JFrame("Janela");
		frame.setSize(400, 300);
		frame.setLocationRelativeTo(null);        
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setVisible(true);   
	}
}

Obrigado !!!

4 Respostas

ganondorfan

Tira o método Main das suas classes.
Cria uma terceira com o método main, insira um JLabel na sua classe que monta a janela, e coloque esse label com get and setter publicos, para você poder atualizá-lo com seu contador.

ViniGodoy

Nesse post:

E nos dois da página seguinte a esse, tem 3 maneiras diferentes de fazer um reloginho em Java.
É bem fácil adaptar esse código para virar um cronometro.

matheuslmota

Olá.
Só uma coisinha. Você não pode ter dois métodos main em sua aplicação.
Outra coisa, você pode criar uma classe e chamar o método dessa classse dentro de outra classe, desde que esse métod tenha sido declarado como público.
Exemplo:

public class Tabuada{
    public int soma(int a, int b)
    {
          retur a + b;
     }
}

Você pode chamar o método soma em outra classe:

public class Teste{
   public static void main(String args[]){
      Tabuada tabuada = new Tabuada();
      System.out.println(tabuada.soma(5+5));
   }
}

Isso imprime 10 na tela.

Para o seu caso, você pode fazer o seguinte, nem precisa de outra classe:

import javax.swing.JFrame; 

public class Janela {    
        
	boolean loop = false;
        int sec = 5;
        public Janela(){//Coloquei a inicialização dos componentes no contrutor
		JFrame frame = new JFrame("Janela");
		frame.setSize(400, 300);
		frame.setLocationRelativeTo(null);        
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setVisible(true);   
                cronometro = new Label();
                cronometro.setText("5");
                start();
                frame.add(label);
        }
	public static void main(String[] args) {
                Janela = new Janela();
	}
        public void start(){

		while(loop == false){

			Thread.sleep(1000);
			sec--; 
                        cronometro.setText(Interger.toString(sec));
			if(sec == 0)
				loop = true;

		}
         }
}

Vê se ajuda ae.
Abraço.

EDIT: Tô com mania de responder post ao mesmo tempo que os outro… rsrsrs

ThiagoA

Valeu pessoal !!

Obrigado!!

Criado 18 de julho de 2011
Ultima resposta 19 de jul. de 2011
Respostas 4
Participantes 4