2014-10-07 78 views
0

我试图检测一个空间点击键盘使用KEYBOARD_SPACE,它似乎没有检测到任何东西。我的代码是:检测键盘空间点击

@Override 
public boolean onKeyUp(int keyCode, KeyEvent event) { 
    switch (keyCode) { 
     case KeyEvent.KEYCODE_SPACE: 
      return true; 
     case KeyEvent.KEYCODE_DEL: 
      return true; 
     default: 
      return super.onKeyUp(keyCode, event); 
    } 
} 

KeyEvent.KEYCODE_DEL完美的作品第二种情况,所以我有点不确定是什么问题。有没有更好的方法来做到这一点?

感谢您提前提供任何帮助!

+0

[Here](http://stackoverflow.com/questions/23618567/dispatchkeyevent-to-listen-for-spacebar-being-pressed)是一个类似的问题。答案指出,您不应该依靠软键盘上的按键来生成事件。 – BradyK 2014-10-07 16:36:47

回答

0
import java.awt.event.*; 
import javax.swing.*; 



public class KeyboardControls implements KeyListener 
{ 


    public KeyboardControls() 
    { 
     super(); 
    } 

    public void keyTyped(KeyEvent e) 
    { 


    } 

    public void keyPressed(KeyEvent e) 
    { 

     doSomething(e); 

    } 

    public void keyReleased(KeyEvent e) 
    { 


    } 

    private void doSomething(KeyEvent e) 
    { 


     int id = e.getID(); 
     String keyString; 

     int keyCode = e.getKeyCode(); 
     keyString = "" + KeyEvent.getKeyText(keyCode); 


     if(keyString.equals("Space")) 
     { 

     // whatever 

     } 



    } 



} 

这是我会这么做的。它检查它是否是空间,然后调用其中的任何方法。