2014-10-07 3 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

[여기] (http://stackoverflow.com/questions/23618567/dispatchkeyevent-to-listen-for-spacebar-being-pressed)도 이와 비슷한 질문입니다. 대답은 이벤트를 생성하기 위해 소프트 키보드의 키를 누르지 말아야한다는 것을 의미합니다. – BradyK

답변

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 

     } 



    } 



} 

이것이 내가하는 방법입니다. 그것은 공간인지 확인한 다음 그 안에있는 모든 메소드를 호출합니다.