[quote=“Felipe”]Você não ta querendo que o Mapa seja atualizado enquanto são feitos os calculos? Então, se você for esperar a Thread parar com o join(), você vai ter apenas uma Thread rodando, dai vale mais apena usar uma unica Thread.
E o Thread.sleep() é apenas para evitar que fica atualizando demais, afinal, pra que mais de 20 quadros por segundo? Vai apenas gastar tempo de processamento, note que ta dentro do loop do while, o que vai fazer com que continue atualizando enquanto não tiver terminado.
Outra coisa que eu só vi agora, é que você esqueceu de adicionar o Mapa no JFrame, dai não funciona mesmo, tenta isso:
public class Classe1 extends JFrame implements Runnable
{
Thread ex;
boolean compreto;
public Classe1()
{
completo = false;
Mapa mapa=new Mapa(valores);
getContentPane().add(mapa);
if(ex!=null) ex=null;
Thread ex=new Thread(this);
ex.start();
setVisible(true);
}
public void run()
{
while (!completo){
mapa.update();
try{
Thread.sleep(50); // pode ser qualquer tempo,
// apenas pra não atualizar mais que o necessario
}
catch (Exception erro){}
}
}
}
public class Mapa extends JPanel{
public paintComponent(Graphics g)
{
//comandos
}
public void update(){
repaint();
}
}
Classe1 classe=new Classe1()
// aqui fica o "comando()"
classe.completo = true;
execute1();
[/quote]
Cara,
Mas o comando tem que ser executado dentro mesmo,ele pode demorar como ir rapido ,ele trabalha com valores randomicos…e apesar de eu ter colocado “comando” ,na verdade são varios comandos ,muitos mesmos ,linhas e linhas de codigo…
E não pra dar sleep ,pois não tenho como mensurar o tempo do processamento ,pode ser 2 min ou 5 min,é dá sim pra ver o Mapa sendo atualizado ,não é tão rapido