Tastatureingabe gelingt mir nicht

Azazel

Mitglied
Moin,

Ich möchte mittels KeyEvent herausfinden, ob die entsprechende Taste getippt wurde.
Das sieht dann bei mir so aus:
Java:
public class Leinwand extends JPanel implements KeyListener,ActionListener{
private static final long serialVersionUID = 1L;

    public Leinwand(){
        timer = new Timer(fps60,this);
        timer.start();
        addKeyListener(this);
       
    }
   
    @Override
    protected void paintComponent(Graphics g){
        super.paintComponent(g);
       
        g.fillRect(x, y, p.getPlayerBreite(), p.getPlayerHoehe());
       
    }

    @Override
    public void keyPressed(KeyEvent keyp) {
   
    }

    @Override
    public void keyReleased(KeyEvent keyr) {
       
    }

    @Override
    public void keyTyped(KeyEvent keyt) {
        if(keyt.getKeyChar() == 'a'){
            System.out.println("a");
        }
    }

    @Override
    public void actionPerformed(ActionEvent action) {
  
    }
}
Leider scheint das nicht zu klappen.
Ich bin den Code auch mehrere male durchgegangen, alles stimmt außer das der KeyListener nicht reagiert.
Wo ist der Fehler?
 
ich denke statt dieser satz if(keyt.getKeyChar() == 'a') sollst du vielleicht lieber das hier benutzen:
if(KeyEvent.getKeyText(keyt.getKeyCode()) == "a");
 

Zurück
Oben