Hi, habe ein kleines Problem mit der Behandlung von Key-Events.
Und zwar geht es um das Keylistener-Interface, welches ich in meinem Projekt eingebunden habe.
Dieses funktioniert so ganz gut, doch ich brauche etwas spezielles:
Ich muss EIN Signal bekommen, wenn eine bestimmte Taste gedrückt gehalten wird,
und EIN Signal, wenn diese wieder losgelassen wird.
Dies habe ich so realisiert:
Das klappt auch wunderbar...mit dieser Lösung kann ich das Array keyField[] immer abfragen, wann gerade welche Taste gedrückt gehalten wird. Das Problem ist aber, dass ich manchmal das keyReleased()-Event
selbst erzeugen/simulieren will.
Das bedeutet im Klartext.
Ich drücke die Taste 'a', halte diese gedrückt. Somit ist keyfield['a'] auf true gesetzt.
bevor ich die Taste aber nun loslasse und die Methode keyReleased mir das keyfield['a'] wieder auf false setzt,
möchte ich vorher keyfield['a'] selber "manuell" auf false setzen. Also quasi die Taste früher loslassen, als der
Benutzer sie eigentlich loslässt. Das Problem ist, dass aber keyPressed bei einer gedrückten Taste nicht nur einmal feuert..sondern dauerfeuert......weiss da jemand ne Abhilfe/Lösung für mich ?
Vielen Dank im vorraus für eure Hilfe
Gruß
Final
Und zwar geht es um das Keylistener-Interface, welches ich in meinem Projekt eingebunden habe.
Dieses funktioniert so ganz gut, doch ich brauche etwas spezielles:
Ich muss EIN Signal bekommen, wenn eine bestimmte Taste gedrückt gehalten wird,
und EIN Signal, wenn diese wieder losgelassen wird.
Dies habe ich so realisiert:
Code:
public void keyReleased(KeyEvent e)
{
if (key >=0 && key < 256)
keyField[e.getKeyChar()] = false;
}
public void keyPressed(KeyEvent e)
{
if (key >=0 && key < 256)
keyField[e.getKeyChar()] = true;
}
Das klappt auch wunderbar...mit dieser Lösung kann ich das Array keyField[] immer abfragen, wann gerade welche Taste gedrückt gehalten wird. Das Problem ist aber, dass ich manchmal das keyReleased()-Event
selbst erzeugen/simulieren will.
Das bedeutet im Klartext.
Ich drücke die Taste 'a', halte diese gedrückt. Somit ist keyfield['a'] auf true gesetzt.
bevor ich die Taste aber nun loslasse und die Methode keyReleased mir das keyfield['a'] wieder auf false setzt,
möchte ich vorher keyfield['a'] selber "manuell" auf false setzen. Also quasi die Taste früher loslassen, als der
Benutzer sie eigentlich loslässt. Das Problem ist, dass aber keyPressed bei einer gedrückten Taste nicht nur einmal feuert..sondern dauerfeuert......weiss da jemand ne Abhilfe/Lösung für mich ?
Vielen Dank im vorraus für eure Hilfe
Gruß
Final