我想在我的应用程序中添加一个全局键监听器,它运行正常但我的应用程序中的第0个控件(组合框)仍然具有输入焦点并且还响应按键:
KeyEventPostProcessor pp = new KeyEventPostProcessor() {
public boolean postProcessKeyEvent(KeyEvent e) {
return true;
}
};
DefaultKeyboardFocusManager.getCurrentKeyboardFocusManager().
addKeyEventPostProcessor(pp);
是否有类似“preProcessKeyEvent()”方法的东西我可以覆盖,这会阻止子控件在我不希望它们处理时看到该事件?
由于
答案 0 :(得分:0)
您可以使用以下命令来阻止调度KeyEvents:
KeyEventDispatcher dispatcher = new KeyEventDispatcher() {
@Override
public boolean dispatchKeyEvent(KeyEvent e) {
return true;
}
};
DefaultKeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher(dispatcher);
但是你通常不需要执行这样的事情。使用适当的KeyBindings,您应该能够实现大部分必需的行为。