KeyListener

MOEP_BIBER

Aktives Mitglied
Hey Leute,

ich hab ein Problem mit meinem KeyListener:

Mein Code sieht stark abgekürzt so aus:
Java:
boolean left;
boolean right;
boolean space;
public void keyPressed(KeyEvent e)
{
int kc = e.getKeyCode();
        switch(kc)
        {
            case 32: space = (space == true) ? false:true;
            break;
            case 39: right = (right == true) ? false:true;
            break;
            case 37: left = (left == true) ? false:true;
            break;
        }

In der Methode keyReleased ist genau das Selbe drin.
In nem Thread werden die Booleans ständig geprüft und je nach Status eine Aktion ausgeführt.

Nun zu meinem Problem:
An sich würde das Ganze funktionieren, das Problem liegt jedoch darin, dass wenn man lange auf zb der linken maustaste draufbleibt, dann wird sozusagen sehr rapide die linke maustaste gedrückt.
(Beispiel bei Word: man drückt die Taste "a" dann wird zuerst ein "a" reingeschrieben dann gibts ne kurze Pause und dann werden rapide viele weitere "a"s eingefügt.)

Was kann ich machen?

MfG Biber
 

Marco13

Top Contributor
Erstmal erklären, was ein KeyListener mit Maustasten zu tun hat. Ansonsten ist das beschriebene Verhalten normal, aber wenn man nur auf keyPressed/released reagiert (und nicht auf keyTyped) sollte man davon nichts merken.

EDIT: Was genau mit den Flags erreicht werden soll, könntest du auch nochmal beschreiben...
 
G

Gast2

Gast
Ja das mit der Maus musste nochmal näher erläutern.

Zu deinen Flags:
Code:
space = (space == true) ? false:true;
=>
Code:
space = !space;
Wenn das selbe in deinem keyReleased steht dann is das wohl äquivalent mit
keypressed:
Java:
...
space = true;
...
keyreleased:
Java:
...
space = false;
...
Oder nicht?
Du machst ja nichts anderes als das flag umzudrehen bei tastendruck/taste loslassen.
 

Titanpharao

Bekanntes Mitglied
Genau und das "verzögern" kommt durch die Windows Tastenverzögerung zustande ... hatte ich in meinem Spiel auch mal ;) Öffne einfach mal ein Editor und drücke selbst AAAAAAA.
 

MOEP_BIBER

Aktives Mitglied
Herzlichen Dank EikeB.

Jetzt funktionierts.
Hab das viel zu kompliziert geschrieben, da ich den Code zuerst in ner anderen Methode hatte und da brauchte ich den Ausdruck.

noch ne kurze Frage:

Macht man das normalerweise so?
Also für jeden Key n boolean bzw ein booleanArray um den Status der Tasten zu speichern?
Oder wird das normalerweise anders gelöst?

offtopic: Kann man hier im Forum auch ein ganzes Programm posten damit sich den mal jemand ansieht(natürlich mit einigen Kommentaren zum leichteren Verständnis und nicht allzu groß), da ich denke mein Code ist allgemein viel zu kompliziert geschrieben.

MfG Biber
 

Andi_CH

Top Contributor
Was ist wenn ich zwei Tastaturen an meinem System habe? (ok, eine davon ist physikalisch keine Tastatur sondern ein über USB angeschlossener Barcodescanner, welcher sich aber als Tastatur anmeldet und auch so verhält)

Kann ich unterscheiden welcher Code woher kommt?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
G KeyListener für JTextField Allgemeine Java-Themen 5
VfL_Freak KeyEvent.VK_TAB im KeyListener abfragen Allgemeine Java-Themen 13
N Keylistener ohne Dazugehörige Gui Allgemeine Java-Themen 6
R Java KeyListener buggt? Allgemeine Java-Themen 1
C KeyListener Frage Allgemeine Java-Themen 3
T KeyListener Allgemeine Java-Themen 1
S KeyListener ohne Focus - Wie? Allgemeine Java-Themen 2
E KeyListener ohne GUI Allgemeine Java-Themen 6
C KeyListener auslagern - Wie? Allgemeine Java-Themen 3
P Tastatur abfrage ohne KeyListener Allgemeine Java-Themen 3
B Keylistener geht nicht Allgemeine Java-Themen 9
A keylistener funktionirt nicht Allgemeine Java-Themen 4
G JTable mit Keylistener geht nicht Allgemeine Java-Themen 3
S C++/C KeyListener zusammen mit Java Programm Allgemeine Java-Themen 4
T KeyListener lässt sich nur einmal drücken Allgemeine Java-Themen 2
B MouseListener und KeyListener Allgemeine Java-Themen 15
C Sudoku und KeyListener Allgemeine Java-Themen 2
O Frage zum KEyListener Allgemeine Java-Themen 3
J keylistener auf jtable Allgemeine Java-Themen 19
ARadauer mit keylistener hören auch wenn frame nicht den focus hat Allgemeine Java-Themen 2
U Frage zum KeyListener Allgemeine Java-Themen 7
B KeyListener auf mehrere TextFields anwenden Allgemeine Java-Themen 5
G KeyListener: Wiederholtes Aufrufen von KeyPressed verhindern Allgemeine Java-Themen 3
M Tab und KeyListener in einer JTextArea Allgemeine Java-Themen 7
D Allgemeiner KeyListener Allgemeine Java-Themen 4
G KeyListener auf ALT + S Allgemeine Java-Themen 5
S KeyListener! Image Problem! Allgemeine Java-Themen 2
7 Keylistener Allgemeine Java-Themen 3
TheJavaKid Focus für KeyListener setzen Allgemeine Java-Themen 5
M Keylistener für sondertasten an Tastaturen? Allgemeine Java-Themen 6
S Keylistener funktioniert nicht(setFocusable) Allgemeine Java-Themen 4
K KeyListener-Alternative ohne anfängliches Delay ? Allgemeine Java-Themen 5
R Global KeyListener/MouseListener Allgemeine Java-Themen 4
T Unterschiede beim KeyListener zwischen NT und XP Allgemeine Java-Themen 6
R KeyListener ohne Frame und Applet Allgemeine Java-Themen 7
F KeyListener für JTextField Allgemeine Java-Themen 4
S KeyListener ohne awt Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben