2012-01-20 90 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()來提供幫助。