Tela que é chamada esta sumindo

4 respostas
B

Pessoal tive que fazer um novo tópico pois a mensagem nova que mandei naum está sendo configurada com akela xícara de café com fumaça, entaum iria ser dificil de alguem me responder.

Esse é o código que controla a mostragem da hora na tela principal:

public void comeca()

{

hora();

repaint();

long tempo,Aux;

tempo=System.currentTimeMillis();
while(true)

{

Aux = ((System.currentTimeMillis())-tempo);

if((Aux/1000)==1)

{

tempo=System.currentTimeMillis();

comeca();

}

}

}

Esse método está na minha janela principal para mostrar a hora de segundo em segundo, mas estou tendo problema quando chamo outra tela porque ela some(a tela some porque a tela principal é pintada de segundo em segundo), já usei o setModal, mas naum adiantou. Alguém sabe o que posso fazer?

obrigado pela atenção,

Raphael C.

4 Respostas

F

Coloca um teste para saber se ela pode atualizar o relógio ou não.

Mude seu código para algo assim ó:
//teste deve ser um atributo da classe.
public Boolean teste=true;

public void comeca() 
{ 
hora(); 
repaint(); 
long tempo,Aux; 
tempo=System.currentTimeMillis(); 

//Repare que o atributo teste está sendo usado no while...
while(teste) 
{ 
Aux = ((System.currentTimeMillis())-tempo); 
if((Aux/1000)==1) 
{ 
tempo=System.currentTimeMillis(); 
comeca(); 
} 
} 
}

Depois disso é só setar teste como false na hora que vc chamar a outra tela. E quando fechá-la deve setar como true.

PS. teste tem que ser public caso sua outra janela seja de outra classe.

Deve funcionar assim, qualquer coisa Grita aí...

té +

B

O problema é que se ele parar (teste=false) a hora vei parar de ser pintada quando chamar a outra tela. Mas passei a usar thread e resolveu, o negócio é que estou usando label pra mostrar a hora , só que o label tem característica de atrasar quando modifico a hora do S.O. e fico clicando sobre o label. Sabe o que posso fazer pra resolver isso?Não existe um método pra controlar clique em label?

obrigado pela atenção,

Raphael C.

F

“bigwaves”:
O problema é que se ele parar (teste=false) a hora vei parar de ser pintada quando chamar a outra tela. Mas passei a usar thread e resolveu, o negócio é que estou usando label pra mostrar a hora , só que o label tem característica de atrasar quando modifico a hora do S.O. e fico clicando sobre o label. Sabe o que posso fazer pra resolver isso?Não existe um método pra controlar clique em label?

obrigado pela atenção,

Raphael C.

Como assim o label atrasa? Controlar clique em label? seria com o mouseListener, para controlar cliques no label…

B

Quando coloquei o label dento do panel(barra de status) o problema foi resolvido. Valeu pela ajuda e atenção feliperod,

Raphael C.

Criado 18 de dezembro de 2004
Ultima resposta 25 de dez. de 2004
Respostas 4
Participantes 2