2009-03-05 23 views

Respuesta

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

reemplazar KeyEvet con KeyEvent :) – Ricket

0

Si quiere decir que quiere unir esto a su panel (Ventana con la que está trabajando).

luego debe crear una clase interna que se extienda desde la interfaz IKeyListener y luego agregar ese método a la clase.

A continuación, adjunte esa clase a su panel por: this.addKeyListener (nueva subclase());

0

Debe utilizar cosas como: KeyEvent.VK_UP en lugar del código real.

¿Cómo quieres refactorizarlo? ¿Cuál es el objetivo de la refactorización?

+0

Sólo necesito saber qué constante a utilizar para comprobar esto, en este momento estoy comparando con el valor numérico de 39/37 –

+0

etc. no creo que lo llamaría que refactorización ... – 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(); 
} 

Los códigos de KeyEvent son parte de la API: http://docs.oracle.com/javase/7/docs/api/java/awt/event/KeyEvent.html

+0

código int final; code = e.getKeyCode(); el interruptor (código) {} será más rápido y menos claro. – TofuBeer

6

Sólo para completar la respuesta (utilizando el KeyEvent es el camino a seguir), pero la flecha hacia arriba es de 38 y la flecha hacia abajo es de 40 por lo que:

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

+1 por hacerme reír –

Cuestiones relacionadas