JoptionPane com mensagem temporária

5 respostas
M

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:

else if(evento.getSource() == logout){

        System.exit(0);

        }

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 :)

5 Respostas

Thiago_Luis

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

kdoigor

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.

M

vlw thiago ajudou um monte :smiley:

mas esse método splash screen como funciona??

eu uso java 6

vlw!

Thiago_Luis

Tbm quero saber…

M

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

Criado 14 de maio de 2009
Ultima resposta 8 de jun. de 2009
Respostas 5
Participantes 3