Devi fare qualcosa del genere:
codice:
class ThreadLabel extends Thread{
//La label a cui cambiare il testo
JLabel label;
//Il nuovo testo da settare
String text;
public ThreadLabel(JLabel label, String text){
this.label = label;
this.text= text;
}
public void run(){
String oldText = label.getText();
//imposto il nuovo testo alla label
label.setText(text);
try{
//Aspetto 10 secondi
Thread.sleep(10000);
}
catch(InterruptedException e){
}
//Rimetto il vecchio testo
label.setText(oldText);
}
}
Quindi nel codice per gestire l'evento del pulsante:
codice:
ThreadLabel t = new ThreadLabel(label, "Nuovo testo");
t.start();
Il tempo (in millisecondi) per cui il thread deve fermarsi puoi passarlo anche nel costruttore; nota che è necessario creare un altro thread, altrimenti, se blocchi il thread principale che gestisce gli eventi dell'interfaccia, l'interfaccia grafica si blocca tuttta, dando l'impressione di un blocco del programma.