Вы уверены, что ускорители нельзя определить на кнопках, если кнопка была настроена с помощью действия? (Я знаю, что в какой-то момент это было правдой, но я подумал, что это может отличаться в более поздних версиях Java.)
В любом случае, есть еще один способ установить его на кнопку:
button.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(myKeyStroke, "actionName");
button.getActionMap().put("actionName", myAction);
Если myKeyStroke - это нажатие клавиши, например F3, «actionName» - это метка (String), а myAction - это действие, которое оно вызывает.