如何一个继承自JFrame的类随时响应键盘事件,比如F1事件。 界面中有很多按钮和面板,也不知道哪个组件获得了焦点。

解决方案 »

  1.   

     frame.addKeyListener(new KeyAdapter(){
       public void keyPressed(KeyEvent e)
       {
    if(e.getKeyCode==KeyEvent.vk_F1)
        System.out.println("响应!");
       }
      });
      

  2.   

     Toolkit.getDefaultToolkit().addAWTEventListener(new AWTEventListener() {            public void eventDispatched(AWTEvent event) {
                    if (((KeyEvent) event).getID() == KeyEvent.KEY_PRESSED) {
                     MnemonicAction(((KeyEvent) event).getKeyCode());
                    }
                }
            }, AWTEvent.KEY_EVENT_MASK);
      

  3.   

    楼主或者试试下面这样,我这是删除事件,你改改,好久没弄了,差不多忘了
     InputMap map = (InputMap) UIManager.get("SplitPane.ancestorInputMap");
            KeyStroke f8 = KeyStroke.getKeyStroke(KeyEvent.VK_F8, 0);
            map.remove(f8);