【问题标题】:JPanel doesn't react to KeyBindingsJPanel 对 KeyBindings 没有反应
【发布时间】:2012-10-23 11:55:02
【问题描述】:

我正在开发一个需要 JPanel 来对按下的转义键做出反应的应用程序。 我很确定我使用了正确的方法将键绑定注册到组件,但显然我仍然做错了什么。这是负责注册端对所述键绑定做出反应的代码:

private void initializeKeyBindings() { 
    Action a = new AbstractAction() {
        private static final long serialVersionUID = 1L;
        @Override public void actionPerformed(ActionEvent e) {
            menu.setVisible(true);
            System.out.println("Herp");
        }
    };
    this.getInputMap().put(KeyStroke.getKeyStroke("ESCAPE"), "ESCAPE");
    this.getActionMap().put("ESCAPE", a);
}

在所有其他组件初始化后,在我的 JPanel 的构造函数中调用此方法。我试过调试它,我发现动作本身已在 JPanel 中注册,但 actionPerformed() 方法中的代码从未到达。我怀疑这个 JPanel 没有焦点可能存在问题,因为我在上层 JFrame 中使用了 CardLayout。我真诚地希望任何人都可以帮助我解决这个问题,因为它阻碍了我的进步。

【问题讨论】:

    标签: java swing jpanel key-bindings keystrokes


    【解决方案1】:
    猜你喜欢
    • 2023-03-27
    • 1970-01-01
    • 2017-05-09
    • 2013-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-24
    相关资源
    最近更新 更多