KeyListener

Status
Nicht offen für weitere Antworten.

dR.LoL

Bekanntes Mitglied
Hi Leude,
folgender Code:
Code:
//this ist => public class sSView extends JFrame
this.addKeyListener(new KeyListener() 
    { 
      public void keyPressed(KeyEvent ke) 
      {
        System.out.println(ke);
        int code = ke.getKeyCode();
        if (!(code >= 0x25/*VK_LEFT*/ && code <= 0x28/*VK_DOWN*/) && (code < KeyEvent.VK_NUMPAD1 || code == KeyEvent.VK_NUMPAD5 || code > KeyEvent.VK_NUMPAD9))
        {
          return;
        }
        if (code == KeyEvent.VK_NUMPAD8 || code == KeyEvent.VK_UP)
        {
          sSControl.Snake.Movin = sSControl.Snake.MOVEUP;
        }
        else if (code == KeyEvent.VK_NUMPAD2 || code == KeyEvent.VK_NUMPAD5 || code == KeyEvent.VK_DOWN)
        {
          sSControl.Snake.Movin = sSControl.Snake.MOVEDOWN;
        }
        else if (code == KeyEvent.VK_NUMPAD4 || code == KeyEvent.VK_LEFT)
        {
          sSControl.Snake.Movin = sSControl.Snake.MOVELEFT;
        }
        else if (code == KeyEvent.VK_NUMPAD6  || code == KeyEvent.VK_RIGHT)
        {
          sSControl.Snake.Movin = sSControl.Snake.MOVERIGHT;
        }
      }
      public void keyReleased(KeyEvent parm1) 
      {
        //John Wayne interested...
      }
      public void keyTyped(KeyEvent arg0)
      {
        //John Wayne interested...  
      } 
    });

Habe das selbe schon mittels eines JComponent versucht und Schlug auch fehl!

Woran liegt das?

Vielen Dank und Gruss
 

dR.LoL

Bekanntes Mitglied
Also ich drücke eine Taste und es passirt rein gar nichts!
Zumindest die Zeile sollte ja ausgegeben werden:
System.out.println(ke);
 

SammY

Bekanntes Mitglied
Probier mal anstatt
System.out.println(ke);

System.out.println(ke.getKeyChar());

Das müsste dir ausgeben welche Taste du gedrückt hast.
 

dR.LoL

Bekanntes Mitglied
Ist der ein kleiner Teil des GUI Parts...

das this hier ist ja das mainFrame (JFrame)
kann die folgende Funktion aus IRGENDEINEM GRUND verhindert werden? zB. Weil ich einen CtrlAccelerator eingebaut habe oder sonnst was?

this.addKeyListener(new KeyListener() ....
 

bummerland

Top Contributor
ein jframe hat imho nie den focus. adde den listener den komponenten auf dem frame. dann sollte es klappen.
 

SammY

Bekanntes Mitglied
Hast du nicht implements KeyListener vergessen.

=> public class sSView extends JFrame implements KeyListener

sonst wir ja die Funktion keyPressed nur als irgendeine selbsterstellte Funktion angesehen.
 

dR.LoL

Bekanntes Mitglied
Ja habe ich vergessen.

Ich hab inzwischen 100 Beiträge gefunden die mir sagen, benutze keinen KeyListener sondern AWTEventListener, dann suche ich danach und finde 1000de KeyListener beiträge... ich denke ich werde mal weiter suchen...

mit desem AWTEventListener
 

dR.LoL

Bekanntes Mitglied
Nochmals, habe es ausgelagert mal in eine neue Klasse, die sich Listener nennt. Sie schaut so aus:

Code:
public class Listener implements KeyListener
{
  public void keyPressed(KeyEvent ke) 
  {
    System.out.println(ke.getKeyChar());
    int code = ke.getKeyCode();
    if (!(code >= 0x25/*VK_LEFT*/ && code <= 0x28/*VK_DOWN*/) && (code < KeyEvent.VK_NUMPAD1 || code == KeyEvent.VK_NUMPAD5 || code > KeyEvent.VK_NUMPAD9))
    {
      return;
    }
    if (code == KeyEvent.VK_NUMPAD8 || code == KeyEvent.VK_UP)
    {
      sSControl.Snake.Movin = sSControl.Snake.MOVEUP;
    }
    else if (code == KeyEvent.VK_NUMPAD2 || code == KeyEvent.VK_NUMPAD5 || code == KeyEvent.VK_DOWN)
    {
      sSControl.Snake.Movin = sSControl.Snake.MOVEDOWN;
    }
    else if (code == KeyEvent.VK_NUMPAD4 || code == KeyEvent.VK_LEFT)
    {
      sSControl.Snake.Movin = sSControl.Snake.MOVELEFT;
    }
    else if (code == KeyEvent.VK_NUMPAD6  || code == KeyEvent.VK_RIGHT)
    {
      sSControl.Snake.Movin = sSControl.Snake.MOVERIGHT;
    }
  }
  public void keyReleased(KeyEvent parm1) 
  {
    // TODO: Add your code here
  }
  /** @see java.awt.event.KeyListener#keyTyped(java.awt.event.KeyEvent) */
  public void keyTyped(KeyEvent arg0)
  {
    // TODO Auto-generated method stub
    
  } 
}


Eigendlich... müsste, das nun wirklich gehen... wenn ich dann im JFrame das hier mache:
this.addKeyListener(new Listener());

Naja, ich bin am Ende angelangt... Brauche Verschnauf/Rauchpause ^^
 

dR.LoL

Bekanntes Mitglied
Jain.
Wärend mein SnakeSpiel nicht startet, gehts.

Sobald ich allerdings auf play klicke und der thread von snake startet (priority low) gehts nicht. dann auch wenn ich einen thread beim listener mache, gehts auch nicht....

EDIT: Paar Thread fragen dazu.

Ist es normal, dass ein Thread gleich 100% auslastung braucht?
Brauch ich für eine Snake implementierung mehr als 1 Thread (Der die Schlange bewegen lässt)?
 

SammY

Bekanntes Mitglied
Also normal ist das sicher nicht das ein Thread 100% auslastung bracht. Hast du da evtl ne endlosschleife gebastelt??

Und zum Snake kann ich leider nicht viel sagen da ich so was leider noch nicht gemacht habe.
 

dR.LoL

Bekanntes Mitglied
Okay, ja habe im run() eine "endlos" mit einem Thread.sleep(1000)....

Du ich hacke da Thema ab und probiere halt mal alles durch und schau mir tuts an etc. irgendwie/wann krieg ich das dan schon hin...

Vielen Dank für deine Hilfe!


PS: Habe 4 Buttons die aussehen wie die Pfeiltasten auf dem Keyboard. Wenn ich mit denen Navigiere funktioniert mein Spiel ohne Probleme... Immerhin das... Danke vielmals und ja schöner Abend noch...
 

Murray

Top Contributor
Aus dem Listener heraus wieder einen Thread aufzumachen, löst dieses Problem nicht, denn das Event scheint ja überhaupt nicht durchzukommen.

Zeig doch mal den Thread, der die Bewegung steuert (also den, der beim Klicken auf Start gestartet wird) - es sieht ja so aus, als würde der die CPU soweit auslasten, dass keine Events mehr verarbeitet werden können.

/EDIT: oops, zu spät
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
G GlassPane mit KeyListener Java Basics - Anfänger-Themen 1
P Wie kann ich meine Keylistener Klasse unterscheiden lassen, von welcher "Quelle" der Input kommt? Java Basics - Anfänger-Themen 2
B Bild per KeyListener drehen Java Basics - Anfänger-Themen 1
javalux123 Keylistener auf andere Fenster Java Basics - Anfänger-Themen 3
F Problem mit KeyListener in kombination mit dem ActionListener Java Basics - Anfänger-Themen 4
M KeyListener reagiert nicht Java Basics - Anfänger-Themen 4
M Mit KeyListener Farbe von Label ändern Java Basics - Anfänger-Themen 13
N Java Keylistener Java Basics - Anfänger-Themen 2
B KeyListener funkioniert nicht Java Basics - Anfänger-Themen 2
F KeyListener Java Basics - Anfänger-Themen 3
S Erste Schritte 2D Grafik Probleme mit KeyListener. Java Basics - Anfänger-Themen 18
G KeyListener und JButton vertragen sich nicht Java Basics - Anfänger-Themen 1
J-Gallus Keylistener verstehen Java Basics - Anfänger-Themen 17
S Keylistener Java Basics - Anfänger-Themen 16
S Keylistener im Grafikfenster Java Basics - Anfänger-Themen 3
H Mouse- und KeyListener Probleme? Java Basics - Anfänger-Themen 5
N KeyListener in Thread Java Basics - Anfänger-Themen 0
LexeB4F for schliefe in KeyListener Java Basics - Anfänger-Themen 3
R KeyListener auslagern Java Basics - Anfänger-Themen 3
J KeyListener aus anderer Klasse bereitet Probleme Java Basics - Anfänger-Themen 1
Z KeyListener funktioniert nicht? Weshalb? Java Basics - Anfänger-Themen 8
T KeyListener Java Basics - Anfänger-Themen 2
Gfreak23 Input/Output KeyListener funktioniert auf Laptop nicht allerdings auf Tower-PC Java Basics - Anfänger-Themen 8
J KeyListener - mal wieder... Java Basics - Anfänger-Themen 2
TheSorm KeyListener Problem Java Basics - Anfänger-Themen 4
M KeyListener Java Basics - Anfänger-Themen 3
S KeyListener/ActionListener/paint()/repaint() Java Basics - Anfänger-Themen 3
D KeyListener nicht mehr aktiv nach ActionPerformed Java Basics - Anfänger-Themen 2
C Mehrere Tasten beim KeyListener gleichzeitig lesen Java Basics - Anfänger-Themen 2
L Input/Output Java 3D mit KeyListener Java Basics - Anfänger-Themen 1
S KeyListener reagiert nicht. Java Basics - Anfänger-Themen 4
L KeyListener ohne textfeld Java Basics - Anfänger-Themen 4
J KeyListener,MouseListener,MouseMotionListener und static Java Basics - Anfänger-Themen 7
P Klassen Bei KeyEvent in KeyListener den Tastendruck abbrechen Java Basics - Anfänger-Themen 5
B KeyListener als allgemeine Methode Java Basics - Anfänger-Themen 5
H KeyListener auf ganzes Fenster setzen Java Basics - Anfänger-Themen 14
0 KeyListener ausserhalb der Applikation Java Basics - Anfänger-Themen 5
G KeyListener Java Basics - Anfänger-Themen 4
D KeyListener und ActionListener Problem Java Basics - Anfänger-Themen 6
J KeyListener funtioniert nicht! Java Basics - Anfänger-Themen 3
J KeyListener Java Basics - Anfänger-Themen 11
P Input/Output KeyListener reagiert nicht Java Basics - Anfänger-Themen 4
G KeyListener, Fokus Java Basics - Anfänger-Themen 8
K Input/Output KeyListener funktioniert nicht Java Basics - Anfänger-Themen 3
A Input/Output Keylistener Aktiv schalten Java Basics - Anfänger-Themen 8
J keyListener - Genau 1 Aktion soll bei 1 Tastenausdruck ausgeführt werden Java Basics - Anfänger-Themen 11
S KeyListener Java Basics - Anfänger-Themen 2
A Erste Schritte Problem mit KeyListener Java Basics - Anfänger-Themen 6
Maxim6394 KeyListener geht nicht Java Basics - Anfänger-Themen 15
A Wie KeyListener adden? Java Basics - Anfänger-Themen 15
Maxim6394 KeyListener funktioniert nicht Java Basics - Anfänger-Themen 20
U KeyListener StackOverflowError Java Basics - Anfänger-Themen 2
W KeyListener auf Applet mit Runnable Java Basics - Anfänger-Themen 4
M Apfel-Spiel KeyListener Java Basics - Anfänger-Themen 33
J KeyListener (keyTyped) funktioniert nicht Java Basics - Anfänger-Themen 9
Luk10 KeyListener Java Basics - Anfänger-Themen 13
S KeyListener aus anderer Klasse hinzufügen Java Basics - Anfänger-Themen 19
P KeyListener im Applet Java Basics - Anfänger-Themen 2
S KeyListener-Anwendung Java Basics - Anfänger-Themen 7
O KeyListener funktioniert nur wenn er will Java Basics - Anfänger-Themen 2
A KeyListener funzt ned Java Basics - Anfänger-Themen 6
D KeyListener, Unterscheidung Groß/Kleinbuchstaben Java Basics - Anfänger-Themen 3
S KeyListener als class? Java Basics - Anfänger-Themen 4
F Applet mit KeyListener, "Alt"-Taste und Konflikt mit Browser Java Basics - Anfänger-Themen 2
P KeyListener Java Basics - Anfänger-Themen 2
S KeyListener für einfaches Programm Java Basics - Anfänger-Themen 3
S KeyListener aktiv auch wenn minimiert? Java Basics - Anfänger-Themen 4
Z Globaler Keylistener Java Basics - Anfänger-Themen 2
V KeyListener Beispiel Java Basics - Anfänger-Themen 13
T canvas killt KeyListener Java Basics - Anfänger-Themen 2
Das Brot Nach .add(JRadioButton) funktioniert der KeyListener nicht mehr Java Basics - Anfänger-Themen 2
J Keylistener aber wie jTextField auswahl? Java Basics - Anfänger-Themen 3
D KeyListener, nichts passiert Java Basics - Anfänger-Themen 6
U ActionListener und KeyListener - KeyListener funktioniert nicht Java Basics - Anfänger-Themen 2
D Keylistener zu langsam Java Basics - Anfänger-Themen 7
C Problem mit JPopupMenu, JTextField und Keylistener Java Basics - Anfänger-Themen 2
G Keylistener in einer Schleife Java Basics - Anfänger-Themen 9
M problem mit keylistener Java Basics - Anfänger-Themen 2
M TabbedPane: KeyListener funktioniert nicht mehr Java Basics - Anfänger-Themen 8
N KeyListener ohne GUI? Java Basics - Anfänger-Themen 5
M KeyListener Java Basics - Anfänger-Themen 3
T KeyListener wird nicht ausgelöst Java Basics - Anfänger-Themen 6
O KeyListener Java Basics - Anfänger-Themen 8
Developer_X KeyListener ohne JFrame Java Basics - Anfänger-Themen 13
H KeyListener Java Basics - Anfänger-Themen 4
Developer_X KeyListener Actions (hat mit Java3D zu tun) Java Basics - Anfänger-Themen 20
H KeyListener funktioniert nicht Java Basics - Anfänger-Themen 8
Developer_X JFrame soll KeyListener adden Java Basics - Anfänger-Themen 32
F Keylistener Java Basics - Anfänger-Themen 12
hdi KeyListener : keyTyped() nicht nutzbar? Java Basics - Anfänger-Themen 1
StickToFreak Runnable + KeyListener? Java Basics - Anfänger-Themen 32
dl85hej Keylistener Java Basics - Anfänger-Themen 16
H KeyListener will nicht reagieren Java Basics - Anfänger-Themen 5
R Fehlersuche - KeyListener, KeyAdaper - Nichts Klappt! Java Basics - Anfänger-Themen 2
G Prob. mit KeyListener und Unterklasse Java Basics - Anfänger-Themen 5
G Keylistener nur besimmte Zeichen zulassen Java Basics - Anfänger-Themen 8
hdi keylistener hat keinen fokus oder: listener ohne frame? Java Basics - Anfänger-Themen 10
A KeyListener funktioniert nicht Java Basics - Anfänger-Themen 7
D KeyListener Java Basics - Anfänger-Themen 7
B Keylistener auf JSpinner reagiert nicht? Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben