Prezados, mais uma vez estou aqui para retirar uma dúvida.
Estou tendo problemas no Jframe, pois estava querendo chamar uma Thread.sleep para contar um tempo e depois fazer um this.dispose(); porém durante esse tempo o Jframe fica travado não consigo clicar nos buttons, pois o intuito é fazer o Jframe ficar ativo por 20 Segundos para a aplicação não ficar aberta sem uso. o Menu principal tem icones que fazem alguns procedimentos. Quero colocar esse tempo pois várias pessoas vão usar esse aplicativo, e alguém pode esquecer aberto e outro não conseguir utilizar.
Passei a tarde toda tentando resolver, e vi os comentários informando que a Thread criada pelo Swing - Jframe é que causa esse transtorno. Seria esse evento abaixo?
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new TelaPrincipal().setVisible(true);
}
});
}
Isso significa que todo Jframe está executando essa Thread. Nesse caso eu teria que criar outra Thread para poder utilizar um metodo para ao iniciar o componente ele usar o thread.sleep e depois encerrá-lo?
ou seja:
new Thread (new Runnable(){
public void run(){
Thread.sleep(20000);
Jframe jf = new Jframe();
jf.dispose();
}
}).start();
Onde estou errando pois mesmo fazendo assim ele trava e não encerra o Jframe.
Só está faltando isso para encerra meu projeto… são 10 Telas.
e todas elas eu desejo colocar um tempo de execução de cada uma.
Realmente não estou conseguindo assimilar isso. Já tentei ver swingworker, mas também ainda não entendi como implementar.