package rabbitescape.ui.swing; import java.awt.event.ActionEvent; import javax.swing.AbstractAction; import javax.swing.AbstractButton; import javax.swing.InputMap; import javax.swing.JButton; import javax.swing.KeyStroke; public class MenuTools { public static void clickOnKey( final AbstractButton button, String actionName, int key ) { clickOnKey( button, actionName, KeyStroke.getKeyStroke( key, 0 ) ); } public static void clickOnKey( final AbstractButton button, String actionName, KeyStroke... keyStrokes ) { InputMap inputMap = button.getInputMap( JButton.WHEN_IN_FOCUSED_WINDOW ); for ( KeyStroke keyStroke : keyStrokes ) { inputMap.put( keyStroke, actionName ); } button.getActionMap().put( actionName, new AbstractAction() { private static final long serialVersionUID = 1L; @Override public void actionPerformed( ActionEvent e ) { button.doClick(); } } ); } }