Tastenerkennung

Status
Nicht offen für weitere Antworten.
?

?

Gast
Hi, kann mir jemand sagen wie ich ermittle welche Taste gedrückt wurde, und zwar nicht innerhalb eines Textfeldes; die normalen listener reagierieren ja auf jede Taste und differenzieren die nicht
 

DTR

Bekanntes Mitglied
Das KeyEvent hat die Methode getKeyCode(), die Liefert dir den Code der Taste. Mit getKeyChar() bekommst du sogar das Zeichen zurück. getModifiers() liefert zusätzlich noch Informationen über die Modifier.
 

Nobody

Top Contributor
also da die frage war, wie man das differnenzieren kann. nun du könntest versuchen, in dem textfield einen weiteren keylistener zu implementieren, welcher zb einen boolean "innerhalbdestf" auf true setzt und dadurch der andere listener diese am anfang durch eine if bedinung nicht beachtet. ob die beiden jedoch als thread oder nacheinander ablaufen weis ich jetzt nicht habe ich bisher noch nicht gebraucht und daher auch nicht überprüft.

wenns als threadabläuft, könntest du den this.keylistener am anfang mit ner schleife oder nem threadsleep beschäftigen.
 

DTR

Bekanntes Mitglied
Nach meiner Erfahrung laufen zwei Listener, die auf der selben Komponente liegen nicht gleichzeitig ab. Ich glaube das liegt daran, das Swing gegen unerwünschte verändrungen während der Eventverarbeitung sicher gemacht werden soll.
Dabei werden die Listener aber nach dem LIFO Prinzip aufgerufen, so war es zumindest bei meiner Abschlußprüfung, das hat mich einen Tag gekostet :-(
 

Nobody

Top Contributor
dann muss geschaut werden, welcher zuerst aufgerufen wird. wenn dies der this.keylistener ist, dann könnte darin ein thread aufgerufen werden der auf den anderen listener wartet.

oder ne ganz andere idee: du könntest den ort des focus abfragen.
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben