Основываясь на ответах других людей, я решил поделиться тем, что я сделал, в своем собственном приложении ...
Во-первых, у меня есть переменная класса, которая объявлена и инициализирована следующим образом:
private static int keyMask = Toolkit.getDefaultToolkit().getMenuShortcutKeyMask();
Далее, в том же классе, у меня есть этот метод:
private static void addNewMenuItem(JMenu rootMenu, String itemName,
int itemMnemonic, ActionListener itemActionListener) {
JMenuItem menuItem = new JMenuItem(itemName, itemMnemonic);
menuItem.setAccelerator(KeyStroke.getKeyStroke(itemMnemonic, keyMask)); // <-- Where I use keyMask.
menuItem.addActionListener(itemActionListener);
rootMenu.add(menuItem);
}
Теперь все, что мне нужно сделать, чтобы создать новое меню, написать что-то вроде:
addNewMenuItem(fileMenu, "Save...", KeyEvent.VK_S, saveListener);
Как вы можете себе представить, это действительно удобный метод для очистки кода, когда я настраиваю меню с десятками элементов! Я надеюсь, что это помогает кому-то. (Я не пошел по пути действия, потому что это потребовало бы от меня создания нового класса для каждого действия ... это казалось раздражающим ограничением, чтобы обойти. Я почти уверен, что этот код короче, чем этот код будет.)