usa*_*800 0 java swing keylistener
这段代码有什么问题?
addKeyListener(new KeyHandler());
private class KeyHandler extends KeyAdapter {
public void keyPressed(KeyEvent e) {
super.keyPressed(e);
int key = e.getKeyCode();
System.out.println("test");
if(key==KeyEvent.VK_SPACE || key==KeyEvent.VK_ENTER || key==KeyEvent.VK_P) {
paused = true;
}
}
}
Run Code Online (Sandbox Code Playgroud)
这应该在控制台中打印测试,但它没有.我究竟做错了什么?
您正在收听的组件可能无法集中精力.如果你要沿着KeyListener路线走下去,看看你是否得到了一个焦点事件,并检查你的元素是否为isFocusable.
在任何情况下,如果你只想绑定几个键,最好使用KeyBindings:
http://docs.oracle.com/javase/tutorial/uiswing/misc/keybinding.html