2009-03-05 8 views

Répondre

69
public void keyPressed(KeyEvent e) { 
    int keyCode = e.getKeyCode(); 
    switch(keyCode) { 
     case KeyEvent.VK_UP: 
      // handle up 
      break; 
     case KeyEvent.VK_DOWN: 
      // handle down 
      break; 
     case KeyEvent.VK_LEFT: 
      // handle left 
      break; 
     case KeyEvent.VK_RIGHT : 
      // handle right 
      break; 
    } 
} 
+0

remplacer KeyEvet avec KeyEvent :) – Ricket

0

Si vous voulez dire que vous voulez l'attacher à votre panneau (Fenêtre avec laquelle vous travaillez). Ensuite, vous devez créer une classe interne qui s'étend à partir de l'interface IKeyListener, puis ajouter cette méthode à la classe.

Puis, attachez cette classe à votre panneau par: this.addKeyListener (new subclass());

0

Vous devriez utiliser des choses comme: KeyEvent.VK_UP au lieu du code réel.

Comment voulez-vous le refactoriser? Quel est le but du refactoring?

+0

Je juste besoin de savoir ce que constante à utiliser pour vérifier cela, en ce moment je compare avec la valeur numérique de 39/37 etc. –

+0

Je ne pense pas que je voudrais vraiment appeler refactoring ... – TofuBeer

6
public void keyPressed(KeyEvent e) { 
    if (e.getKeyCode() == KeyEvent.VK_RIGHT) { 
      //Right arrow key code 
    } else if (e.getKeyCode() == KeyEvent.VK_LEFT) { 
      //Left arrow key code 
    } else if (e.getKeyCode() == KeyEvent.VK_UP) { 
      //Up arrow key code 
    } else if (e.getKeyCode() == KeyEvent.VK_DOWN) { 
      //Down arrow key code 
    } 

    repaint(); 
} 

Les codes KeyEvent sont une partie de l'API: http://docs.oracle.com/javase/7/docs/api/java/awt/event/KeyEvent.html

+0

code final int; code = e.getKeyCode(); switch (code) {} sera plus rapide et tout aussi clair. – TofuBeer

6

Juste pour compléter la réponse (en utilisant le KeyEvent est la voie à suivre) mais flèche est 38 et flèche vers le bas est 40 donc:

else if (e.getKeyCode()==38) 
    { 
      //Up arrow key code 
    } 
    else if (e.getKeyCode()==40) 
    { 
      //down arrow key code 
    } 
+4

+1 pour me faire rire –

Questions connexes