# JLabel Text 5 sekunden anzeigen lassen



## Guest (2. Aug 2008)

Hi Leute, 

ich hab ein Problem und kann keine Lösung dazu im Netz finden, ich hoffe Ihr könnt mir weiterhelfen.

_Problem: _ ich möchte einen jLabel-Text z.b. 5 sekunden lang anzeigen lassen und dann soll es wieder 
verschwinden... ich hab es mit thread versucht, try catch... aber es funktioniert nicht wie ich will... es soll den 
Text anzeigen und nach 5 sekunden wieder verschwinden...nach meinem code wartet er 5 sekunden und dann erscheint erst der text und geht nicht weg... 


```
public void infoAnzeigen(String info){     
                InfoLabel.setText(info);       
                try{          
                    Thread.sleep(5000);  
                }
                catch(InterruptedException e){
                    System.out.println("Sleep Interrupted");
                }
                InfoLabel.setText(" ");  // Alternative:InfoLabel.setVisible(false);
    }
```

hab auch mit TimeUnit.SECONDS.sleep(5); versucht ist aber das Selbe wie mit Thread... wie kann ich es realisieren, hab schon vieles versucht, aber klappt einfach nicht!

Danke!


Mfg 
  Mr.X


----------



## SlaterB (2. Aug 2008)

> ich hab es mit thread versucht, 

tja, dann hopp noch mal,
ohne Thread wird die GUI erst gemalt, wenn der ActionListener beendet ist,
darin zu warten macht also keinen Sinn,

das ganze muss in einem Thread separat ausgeführt werden


----------



## André Uhres (2. Aug 2008)

Wir können das Problem auch mit einem Timer lösen. Etwa so:

```
public class SwingTimerDemo extends JFrame implements ActionListener{
    private JLabel jLabel1;
    private javax.swing.Timer timer;
    public SwingTimerDemo() {
...
        timer = new javax.swing.Timer(5000, this);
        timer.start();
    }
    @Override
    public void actionPerformed(ActionEvent e) {
        jLabel1.setVisible(false);
        timer.stop();
    }
...
}
```


----------

