Fala cara, blza?
Então, isso tem a ver com Thread.
De uma lida sobre o assunto que vc vai entender.
Eu fiz um exemplo aqui bem simples, mas o único problema é que com o showMessageDialog, o usuário tem que apertar o botão para começar a contar o tempo de 4 seg (4000 milisegundos) para finalizar o programa.
O que vc deve fazer é:
Crie um classe privada (dentro da classe principal) que implemente Runnable;
Essa interface só possui um método, o run.
Dentro do método run é que vc implementa o código que vc quer que fique rodando por um determinado tempo.
Cire uma variável Thread no construtor, por exemplo. Passe por parâmetro ao contrutor do Thread a classe privada que vc criou:
Thread thread = new Thread(new ByeBye());
Quando vc for chamar o botão que fará o logout. Faça:
else if(evento.getSource() == logout){
Thread.start();
}
Isso fará com que a classe ByeBye seja acionada e lá conterá o System.exit(0);
private class ByeBye implements Runnable{
public void run() {
//JOptionPane.showMessageDialog(null,"Bye Bye");
//Depois vc descomente para vc ver o que eu disse.
try{
Thread.sleep(4000);
}catch(InterruptedException e){
e.printStackTrace();
}
System.exit(0);
}
}
É algo mais ou menos assim.
Eu tbm não entendo muito sobre Threads e espero que alguem que veja este poste comente meus erros.
Bom, esse código aqui em casa funcionou, testa ai e poste se foi ou não.
Abraço