[RESOLVIDO] Como fazer com que após alguns segundos feche um jframe e abra outro jframe automaticamente
11 respostasResolvido
jframenetbeansjava
F
Felipe_Godoy
Eae pessoal, gostaria de saber se tem como abrir um jframe automaticamente apos alguns segundos.
Estou fazendo um Projeto da faculdade e estou utilizando o netbeans, criei a “tela inicial” do aplicativo e gostaria que apos alguns segundos abrisse o jframe de login. como o da imagem .
O loop só será finalizado quando x == 10, daí o seu JFrame de login será aberto.
obs: caso esteja fazendo isso no Jframe inicial.
J
Jonathan_Medeiros
Isso aqui não funciona, pois a variável do tipo inteiro não permite trabalhar com tempo!
Para solucionar o problema você deve fazer um delay utilizando Thread:
Exemplo:
publicstaticvoidmain(String...args){//Abre o primeiro jFrametry{Thread.sleep(5000);//Isso criará um delay de 5 segundos}catch(InterruptedExceptione){//Tratativa de exceção}//Abre o segundo jFrame}
V
Vilian_Santos
Double então… é um loop
J
Jonathan_Medeiros
Também não!
V
Vilian_Santos
O loop só irá cessar quando x == 10 daí o que vier depois será executado…
V
Vilian_Santos
De qualquer forma é bom testar, creio que meu raciocínio funcione.
J
Jonathan_Medeiros
O que eu quis dizer é que, o uso de loop com variáveis independente de tipos (Integer, Double…) não atende ao problema, compreende ?
Não disse que seu código está incorreto ou que não funciona, somente não atende ao problema especificado, pois a necessidade é de se trabalhar com tempo e não com valores.
V
Vilian_Santos
Sim, compreendo. Beleza, achei sofisticada sua resposta. Vlw! Mas o cara deve estar começando os estudos em Java, o loop - passando um valor suficiente por parâmetro - será o necessário. De qualquer forma, é bom agregar conhecimento e sua resposta foi legal.
F
Felipe_Godoy
deu certo fazendo isso cara, depois de 5 segundos ele abre o segundo jframe como gostaria só que logo em seguida o primeiro jframe abre novamente .
F
Felipe_Godoy
tentei fazer desse jeito mas não deu certo cara
F
Solucao aceita
Felipe_Godoy
esquece consegui resolver na verdade mais a baixo do meu código o próprio netbeans estava abrindo o Jframe, então coloquei este código de baixo dele.
Ficou assim:
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(newRunnable(){publicvoidrun(){newTelaInicial().setVisible(true);}});try{Thread.sleep(5000);//Isso criará um delay de 5 segundos}catch(InterruptedExceptione){//Tratativa de exceção}TelaLoginprimeiro=newTelaLogin();primeiro.setVisible(true);}