有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java JPanel不会对键绑定做出反应

我正在开发一个应用程序,它需要一个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。我真诚地希望任何人都能帮助我,因为这严重阻碍了我的进步


共 (1) 个答案