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 

     } 



    } 



} 

Так я бы это сделал. Он проверяет, является ли это пробелом, а затем вызывает любой метод внутри него.

Смежные вопросы