0

我想为我的应用程序添加一个全局键侦听器,它工作正常,但我的应用程序(组合框)中的第 0 个控件仍然具有输入焦点并且还响应按键:

KeyEventPostProcessor pp = new KeyEventPostProcessor() {
    public boolean postProcessKeyEvent(KeyEvent e) {
        return true;
    }
};

DefaultKeyboardFocusManager.getCurrentKeyboardFocusManager().
    addKeyEventPostProcessor(pp);

是否有类似“preProcessKeyEvent()”的方法我可以覆盖,如果我不希望子控件处理它,它会阻止子控件查看事件?

谢谢

4

1 回答 1

0

您可以使用以下内容来防止调度 KeyEvent:

KeyEventDispatcher dispatcher = new KeyEventDispatcher() {

    @Override
    public boolean dispatchKeyEvent(KeyEvent e) {
        return true;
    }
};
DefaultKeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher(dispatcher);

但是您通常不需要执行此类操作。使用适当的KeyBindings,您应该能够实现大多数必需的行为。

于 2012-06-22T07:09:14.007 回答