De 5 em 5 segundos

E ai pessoal !!

Tudo Beleza ?!!

Estou montando um joguinho de figuras geometricas e precisava

que as figuras aparecessem no painel aleatoriamente de 5 em 5 segundos

durante 60 segundos.

Estou com dificuldades na hora de utilizar o cronometro. :cry:

[code]import java.awt.Component;
import java.util.Random;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class TestePainel {

/**
 * @param args
 */
public static void main(String[] args) {
	// TODO Auto-generated method stub
		
	Circulo f1 = new Circulo();
	Quadrado f2 = new Quadrado();
	Hexagono f3 = new Hexagono();
	Retangulo f4 = new Retangulo();
	Triangulo f5 = new Triangulo();
	Losango f6 = new Losango();
	
	// Vetor de figuras
	Component[] figuras = {f1,f2,f3,f4,f5,f6};
	int pos = 0;
			
	Random sorte = new Random();
	
	// Numero aleatorio da posição no vetor figuras
	pos = sorte.nextInt(6);
	
			
	JFrame frame = new JFrame("Teste Imagem"); 
	JPanel painel = new Painel(); 

	painel.add(figuras[pos]);
		
	frame.getContentPane().add( painel);     
	
	frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );     
	frame.setSize(750, 500);
	frame.setLocationRelativeTo(null);
	frame.setVisible(true);     
}

}[/code]

[code]package jog;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.Timer;

public class Cronometro extends JPanel {

private static final long serialVersionUID = 1L;
JLabel label;   
Timer timer;   
static int current = 5;   

public Cronometro() {   
	this.add(this.getLabel());   
	this.go();   
}   

public JLabel getLabel() {   
	if (this.label == null) {   
		this.label = new JLabel(this.current + "");   
		
	}   
	return this.label;   
}   

public void go() {   
	ActionListener action = new ActionListener() {   
		public void actionPerformed(ActionEvent e) {   

			if(current != 1)
				label.setText(--current + "");  

		}   
	};   
	this.timer = new Timer(1000, action);   
	this.timer.start();   
}   

} [/code]

voce pode usar o conceito de pagina splash ja tentou?
aqui tem um exmplo, dei uma procurada rapida na net…

http://programei.org/site/java/63--swing/170-fazendo-uma-splash-screen-java

Desconheço o conceito de cronometro em java…
:\

Porque nao usa

trhead.sleep(1000);

??

Quando uso o sleep

o jogo fica meio que travado

e todas a ações feitas com o teclado ou

mouse só tem efeito depois que o sleep acaba !

O pessoal aqui do forum já tinham me alertado sobre isso

e realmente não dá certo.

Pode usar Thread.sleep , mas você terá que estudar sobre SwingWorker, que é a classe que separa a thread do swing do seu processamento, ou seja, a tela não ‘trava’ e você faz o seu processamento em background

Valeu lucasportela

vou dar uma olhada no SwingWorker ,

acho que vai resolver !

ou… oque faz mostrar é que da o .sleep, nao na aplicação toda… quando se da .sleep em alguma thread só ela espera… enquanto a outra continua rodando

Beleza,

então deixa eu vê se entendi !!

no metodo que eu uso para pintar as figuras (no caso posso criar uma classe “Painel”)

que eu utilizo essa thread

certo ?!..

isso :smiley: