Aktion erst nach Zeit ohne Tastendruck

Hallo zusammen,

ich bin dabei eine „Live-Suche“ zu bauen. Das heißt ich habe eine Fenster mit Suchkriterien und einem Ergebnisteil. Immer wenn nun bei den Kriterien eine Tastendruck erfolgt werden die Ergebnisse aktualisiert.

Nun will ich jedoch, um die Datenbankzugriffe zu verringern, erst dann die Suche durchführen nachdem eine halbe Sekunde keine Taste mehr gerdückt wurde.

Eine Wartezeit im selben Thread fällt ja weg, da ich sonst während dieser Zeit auch keine Eingabe machen kann.

Würde mich über eine Lösung sehr freuen.

vielen Dank
mfg sque

Hallo,

Eine Wartezeit im selben Thread fällt ja weg, da ich sonst
während dieser Zeit auch keine Eingabe machen kann.

Wie sieht es mit einer Wartezeit in einem anderen Thread aus?

 private java.util.Timer timer = new java.util.Timer();
 private java.util.TimerTask currentTask;

 // ...

 public void actionPerformed(ActionEvent e){
 System.out.println("something happended");

 if(currentTask != null) {
 currentTask.cancel();
 }
 currentTask = new TimerTask() {

 public boolean cancel() {
 System.out.println("canceled.");
 return super.cancel();
 }

 public void run() {
 System.out.println("setting result...");
 // ...
 }

 };
 timer.schedule(currentTask, 500); // Ausführung in 500ms 
 }

HTH
Heavy

Funktioniert perfekt. Danke dir :smile: