我有一段代码,它允许我捕获击键并用System.out.println打印它们。我的问题是,当我尝试使用CTRL(例如CTRL + 米)使用它,它消除了米键作为keyChar属性。有谁知道为什么会发生这种情况,我该如何解决它?按键捕捉。 ctrl使KeyChar属性为空
public TestForm() {
initComponents();
KeyEventDispatcher keyEventDispatcher = new KeyEventDispatcher() {
@Override
public boolean dispatchKeyEvent(final KeyEvent e)
{
if (e.getID() == KeyEvent.KEY_PRESSED && e.isAltDown())
{
System.out.println("ALT + "+e.getKeyChar());
}
else if (e.getID() == KeyEvent.KEY_PRESSED && e.isShiftDown())
{
System.out.println("SHIFT + "+e.getKeyChar());
}
else if (e.getID() == KeyEvent.KEY_PRESSED && e.isControlDown())
{
System.out.println("CTRL + "+e.getKeyChar()/*+"\n"+e*/);
}
else
{
System.out.println(e);
}
return true;
}
};
KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher(keyEventDispatcher)
;
}
我对Java很新,所以它可能是一些简单的问题。在此先感谢