如何使应用程序中的所有组件响应特定的键事件?

c99*_*999 4 java swing keylistener key-bindings

我的意思是,就像在网络浏览器中按'F5'一样,无论焦点在哪里,都会刷新网页.我如何使用GUI应用程序在Java中执行此操作?我可以对所有组件执行'addKeylistener',但我确信这不是正确的方法.

Rus*_*ard 7

您可以使用Swing的输入和动作映射机制:

component.getRootPane().getInputMap(JRootPane.WHEN_IN_FOCUSED_WINDOW)
          .put(KeyStroke.getKeyStroke(KeyEvent.VK_F5, 0), "refresh");
component.getRootPane().getActionMap().put("refresh", new AbstractAction() {
    @Override
    public void actionPerformed(ActionEvent e) {
        // Code here
    }
});
Run Code Online (Sandbox Code Playgroud)