F8的KeyStroke动作不起作用?

时间:2013-06-25 09:53:17

标签: java swing jbutton hotkeys key-bindings

我正在使用以下代码创建一个有效的热键。虽然除了使用VK_F8之外所有的功能键都工作,我有点惊讶。

String action = "ExecuteSQL";

mExecuteQueryBtn = new JButton("Execute query");
Action actionListener = new AbstractAction()
{
    private static final long serialVersionUID = 1L;

    @Override
    public void actionPerformed(ActionEvent oEvent)
    {
        onExecuteQuery(oEvent);
    }

};

KeyStroke ks = KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, InputEvent.CTRL_MASK);
InputMap imp = mExecuteQueryBtn.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);
imp.put(ks, action);
ActionMap actionMap = mExecuteQueryBtn.getActionMap();
actionMap.put(action, actionListener);

所以当我把它切换到:

KeyStroke ks = KeyStroke.getKeyStroke(KeyEvent.VK_F8, 0);

我没有收到任何关键事件。使用F1,F2等任何其他键都可以正常工作。我的密钥肯定有用,因为我也在其他应用程序中使用它,所以有人可以解释为什么F8会特别吗?

0 个答案:

没有答案