[RESOLVIDO] Como fazer com que após alguns segundos feche um jframe e abra outro jframe automaticamente

11 respostas Resolvido
jframenetbeansjava
F

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 .

11 Respostas

V

Bom, coloca um while ( um contador):


// no caso após dez segundos ( talvez);
int x;

while(int x != 10) {

x = x +1;

}

// O do login;
new NomedoJframe.setVisible(true);

// Fecha o inicial;
dispose( );


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

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:

public static void main(String ... args) {       
        //Abre o primeiro jFrame
        
        try {
            Thread.sleep(5000);//Isso criará um delay de 5 segundos
        } catch (InterruptedException e) {
            //Tratativa de exceção
        }
        
        //Abre o segundo jFrame
}
V

Double então… é um loop :wink:

J

Também não!

V

O loop só irá cessar quando x == 10 daí o que vier depois será executado…

V

De qualquer forma é bom testar, creio que meu raciocínio funcione.

J

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

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

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

tentei fazer desse jeito mas não deu certo cara

F
Solucao aceita

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(new Runnable() {
        public void run() {
            new TelaInicial().setVisible(true);
        }
    });
    
     try {
        Thread.sleep(5000);//Isso criará um delay de 5 segundos
    } catch (InterruptedException e) {
        //Tratativa de exceção
    }
     
     TelaLogin primeiro = new TelaLogin();
     primeiro.setVisible(true);
}
Criado 19 de setembro de 2018
Ultima resposta 20 de set. de 2018
Respostas 11
Participantes 3