0

我能够找到的所有关键侦听器示例都处理主面板以外的组件,例如文本框或菜单。我知道如何使用 setMnemonic 对菜单热键进行编程,但这种方法似乎不可用,并且到 oracle keylistener 教程的链接已损坏。当我在主窗体上执行右键单击 > 事件 > 键 > KeyPressed 时,我得到以下信息,但没有任何键导致mainPanelKeyPressed. 使用键事件触发独立于焦点的操作的正确方法是什么?

mainPanel.addKeyListener(new java.awt.event.KeyAdapter() {
    public void keyPressed(java.awt.event.KeyEvent evt) {
        mainPanelKeyPressed(evt);
    }
});

private void mainPanelKeyPressed(java.awt.event.KeyEvent evt) {
    // Added to help find the ID of each 'arrow' key
    JOptionPane.showMessageDialog(null, "mainPanelKeyPressed"); 
}
4

2 回答 2

5

使用关键事件触发独立于焦点的动作的正确方法是什么?

请参阅:如何使用键绑定

或者使用带有菜单和菜单项的 JMenuBar。

于 2012-01-20T16:20:07.137 回答
0

重点很重要。您可能需要四处点击并进行试验,并使用 component.requestFocusInWindow() 来提供帮助。

于 2012-01-22T14:33:17.933 回答