Kommt drauf an was du damit machen willst.
Wenn du z.B. eine Figur in einer Animation (z.B. in einem Spiel) steuern willst, dann wirst du sowieso eine Animationsschleife haben (d.h. ein separater Thread, der in einer Schleife in regelmäßigen Abständen alle Elemente bewegt). Btw.: Falls du so etwas nicht hast, dann kann man so einen Thread auch nur für die Tastatur schreiben, alternativ zur Schleife ist auch ein ein Timer möglich.
Dann braucht man nur mehr eine Variable, in der der letzte Tastendruck gespeichert wird (bei keyPressed), bzw. beim Loslassen (keyReleased) wieder gelöscht wird. Nun kann man in der Animationsschleife diese Variable abprüfen und hat in regelmäßigen Abständen die Möglichkeit das zu tun was immer man mit diesem Tastendruck tun möchte. Will man mehrere Tasten gleichzeitig auswerten (z.B. Pfeiltasten links und oben für eine Bewegung einer Spielfigur nach links oben), so muss man eben mehrere Tasten separat speichern (d.h. mehrere boolsche Variablen für die jeweiligen Tasten).
Nachteil des ganzen: Die Taste wird erst eine Kleinigkeit verzögert ausgewertet (max. einen Schleifendurchlauf zu spät). Macht aber bei z.B. 30 Animationsschritten pro Sekunde in einem Spiel normalerweise nichts. Braucht man eine sofortige Reaktion, so muss man die Schleife (Thread) beim ersten Tastendruck starten und beim Loslassen wieder stoppen.
Hoffe es war verständlich. Ich musste allerdings etwas allgemein bleiben, da ich die näheren Umstände nicht kenne.
Edit: Das Ändern der Verzögerung/Wiederholrate im Betriebssystem bringt nichts, und zwar aus mehreren Gründen:
- Man kriegt diese Verzögerung normalerweise nie ganz weg (zumindest nicht unter Windows, unter Linux habe ich das noch nie ausprobiert)
- Man will wohl kaum jedesmal am Betriebssystem herumpfuschen, wenn man in einem einzelnen Programm keine Tastenverzögerung haben möchte.