Boas… Cá estou novamente a chatear
Ora bem, o problema agora é o seguinte, tenho um JButton num JMenuBar e no ActionListener desse botao chamo uma funcao que se encontra dentro da JFrame, essa funcao por sua vez, cria um JPanel e coloca-o na JFrame…
Se eu chamar a funcao directamente da JFrame, ela corre perfeitamente, mas chamando-a do ActionListener, quando carrego no botao, ele simplesmente n corre, mas faz a ultima iteracao de um for que se encontra dentro da funcao… ou seja ele faz tudo, mas n apresenta nada na JFrame, alias nem sei se ta a fazer bem ou n, pelo menos quando a chamo de dentro ela corre bem, alias, mmo como eu quero!!!
O listener
public void actionPerformed (ActionEvent e){
if (e.getSource().equals(botao_inicia))
iniciaGrafSim();
}
O metodo na JFrame
public void iniciaGrafSim ()
{
Vector sel_pdas = new Vector();
if (lista.getSelectedValue() != null)
for (int i=0; i< lista.getSelectedValues().length ; i++)
{
sel_pdas.add(lista.getSelectedValues()[i]);
}
else
{
sel_pdas = sim.getPdas();
}
d = new DesenhaMundo(sel_pdas); //Isto e o tal JPanel
scroll_image = new JScrollPane(d); //coloco num Scroll
pane.add(scroll_image,"Center"); //coloco no pane que e o Content da JFrame
//Simula o mundo n vezes
//Aqui vai fazer varios redesenhos no JPanel com o uso duma BufferedImage
for (int i=0; i<cfg.NUM_HORAS*(60/cfg.PASSO_HORARIO); i++)
{
d.setRelogio(r);
r.avancaRelogio();
d.repaint();
setVisible(true);
//Pausa entre redesenhos
if(slider.getValue()==-500)
{
while(slider.getValue()==-500);
}
else
{
int start = (int) System.currentTimeMillis();
while(((int) System.currentTimeMillis()) < start + 500);
}
r.reset();
}
}
Nao coloco o metodo do JPanel pq esta a funcionar perfeitamente, visto que quando chamo este metodo IniciaGrafSim() directamente da JFrame ele corre perfeitamente.
Obrigadao a todos, desde já!!!