Utilizzare i thread: crei un thread assieme al frame (e magari gli passi il frame stesso nel costruttore) che attende 30 secondi e poi richiama una dispose() o una hide() sul frame (a seconda se vuoi chiudere o semplicemente nascondere la finestra).
Un esempio al volo del metodo run() di quel thread:
codice:
public class TuoThread extends Thread {
private JFrame finestra;
public TuoThread(JFrame finestra) { this.finestra = finestra; }
public void run() {
try {
sleep(30000); // Attendo 30 secondi
if (finestra != null) finestra.dispose(); // Chiudo la finestra
} catch (Exception e) { e.printStackTrace(); }
}
}
Potresti, a questo punto, creare il thread e avviarlo subito dopo aver visualizzato la finestra:
codice:
// Suppongo che la tua finestra si chiami "fin":
fin.setVisible( true );
TuoThread tt = new TuoThread( fin );
tt.start();
Ciao.