JoptionPane com mensagem temporária

pessoal, eu tenho um programa e eu quero fazer a seguinte função:

quando o usuário clicar no botão “sair” do programa, fazer com que apareca (pode ser uma JOptionPane) mostrando “good-bye” por exemplo. Só que por um determinado tempo
Vejam o código:

[code]else if(evento.getSource() == logout){

    System.exit(0);

    }[/code]

ou seja se ele clicar no botao logout, ele fecha o programa, tira da memória, mas antes do System.exit(0), mostrar a mensagem por 4 seg.

alguém sabe aí?

abrass :slight_smile:

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:

[code]else if(evento.getSource() == logout){

    Thread.start();   

    }[/code]

Isso fará com que a classe ByeBye seja acionada e lá conterá o System.exit(0);

[code]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);
	}
	
}[/code]

É 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

Outra opção é criar uma splash screen e chamar ela no fim do programa.
No java 6 é coxa. No 5 vc vai ter um pouco de trabalho.

vlw thiago ajudou um monte :smiley:

mas esse método splash screen como funciona??

eu uso java 6

vlw!

Tbm quero saber…

aqui na comu mesmo eu achei um programa que um cara fez… muito bom!

ele é com Splash Screen mas tem também JProgressBar implantado no Splash

porém se vc estudar direitinho a classe vai saber usar o Splash :slight_smile:

abrass