2012-01-20 34 views
0

我所能找到的关键侦听器的所有示例都处理除主面板以外的组件,如文本框或菜单。 我知道如何使用setMnemonic来编程菜单热键,但是这种方法似乎并不可用,并且oracle keylistener教程的link已损坏。 当我在主窗体上执行右键单击>事件>密钥> 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"); 
} 

回答

5

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

参见:How to Use Key Bindings

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

0

重点是重点。你可能需要点击并试验,并使用component.requestFocusInWindow()来提供帮助。