JFrame - 10 Sekunden bis zum schließen warten.

DeepExploit

Mitglied
Guten Tag 🙂


Java:
public void fenster(){
   
       JFrame fenster = new JFrame();
       fenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       fenster.add(new Background());
       fenster.setExtendedState(JFrame.MAXIMIZED_BOTH);
       fenster.setVisible(true);
       fenster.dispose();

Ich würde gerne, dass sich das erstellte JFrame "fenster" ca. 10 Sekunden nachdem es sich geöffnet hat von selbst wieder schließt. Nun, dass da zwischen
Java:
 fenster.setVisible(true)
und
Java:
 fenster.dispose();
etwas fehlt sollte klar sein. Aber nur was? Ich habe es bereits mit
Java:
    try{
        Thread.sleep(10000);
       }catch(InterruptedException ie){}
versucht
Dann funktioniert das auch. Aber auf dem Frame "fenster" wird nicht der gewünschte Hintergrund aus
Java:
fenster.add(new Background());
bzw. der Klasse "Background" dargestellt sondern nur ein 100% leeres Fenster, welches sich nach 10 Sekunden schließt 🙁

Bitte um Hilfe 🙂

LG
 
Der Versuch mit Thread.sleep geht in die richtige Richtung. Aber wie du festgestellt hast, wirkt sich dies auf das gesamte Programm aus. Deshalb solltest du einen neuen Thread verwenden oder einen Timer.
Das mit dem Thread funktioniert ungefähr so:
Java:
Thread th = new Thead(new Runnable(){
    public void run(){
        Thead.sleep(10000);//Hier noch eine Exception fangen
        fenster.setVisible(false);
        fenster.dispose();
    }
});
th.start();
Dieser Thread läuft parallel zu deinem "Hauptthread" und damit wird nicht dein gesamtes Programm schlafen gelegt.

Tipp: Verwende englische Bezeichner und nenne deine Methode nicht nach einem Substantiv, sondern sowas wie "createFrame".
 

Zurück
Oben