On the Stre@m

Technical
...
The serpent is crawling inside of
your ear
He says you must vote for what you
want to hear
Dont matter whats wrong as long as
youre alright
So pull yourself stupid and rob
yourself blind
(dickinson/gers)

Accelerator key on JButton.
Assign accelerator key to a JButton.

I found myself in search for this answer and not finding I start digging through java sources and found something that can help in BasicButtonListener and BasicButtonUI.
The idea is that you can assign to each JComponent an ActionMap and an InputMap. In InputMap you associate a key stroke to an action and in ActionMap the action to whatever actual action you want. But let's see the code:

// setting the button to receive action when F3 is pressed
InputMap keyMap = new ComponentInputMap(button);
keyMap.put(KeyStroke.getKeyStroke(KeyEvent.VK_F3, 0), "action");

ActionMap actionMap = new ActionMapUIResource();
actionMap.put("action", new YourAction());

SwingUtilities.replaceUIActionMap(button, actionMap);
SwingUtilities.replaceUIInputMap(button, JComponent.WHEN_IN_FOCUSED_WINDOW, keyMap);
// setting done

and that is all. from now on the button will be concider an action whenever you press F3 regardless of focus in the current window.
Page 1 of 1