JTextfield für ein paar Sekunden füllen und dann wieder leeren

Mit sleep() schickst Du Deinen arbeitenden Thread "ins Bett". Dort verbringt er dann die halbe Nacht und arbeitet erst dann weiter. :-)

Toms Beispiel ist schon eine gute Möglichkeit.
Kenne mich mit Timers noch nicht aus, jedoch kannst Du auch einen herkömmlichen thread benutzen:

Code:
public class TextView implements Runnable {
 
private TextField textField;
private String text;
 
public TextView(TextField textField, String text) {
this.textField = textField;
this.text = text;
}
 
public void run() {
textField.setText(text);
try {
Thread.sleep(2000); //2s
}
catch (InterruptedException ie) {}
textField.setText("");
}
}

Code:
public void setTextMessage(TextField textField, String text) {
(new Thread(new TextView(textField, text))).start();
}

Das ist alles.
 
Hallo!

Man sollte UI Komponenten innerhalb von Swing NIE von einem anderen Thread als dem Event Dispatch Thread manipulieren! Wenn man in einem anderen Thread ist
(Kann man beispielsweise ueber: EventQueue.isDispatchThread() herausfinden).
sollte man EventQueue / SwingUtilities .invokeLater/invokeAndWait(...) verwenden.
Das ist Quasi das 1x1 der Swing-Programmierung...

Gruss Tom
 
Zurück