В моей программе есть строка меню с одним меню, которое называется «Файл». Внутри файлового меню есть 4 опции: «Новый», «Пауза», «Отменить» и «Выход». Все пять из них имеют мнемонику, назначенную, однако, только одна для Файла работает так, как я надеялся.
Четыре других работают, но они работают, только если я сначала активирую мнемонику для Файла. т.е. чтобы активировать «Новый» мне нужно нажать Alt + F , Alt + N . Я не думал, что мнемоника должна работать таким образом, но я мог ошибиться.
Это код, который у меня сейчас есть, может быть, кто-то подскажет, что я делаю неправильно.
//MENU BAR
private JMenuBar menuBar;
private JMenu fileMenu;
private JMenuItem newGame;
private JMenuItem pauseGame;
private JMenuItem unpauseGame;
private JMenuItem exitGame;
//CREATE THE FILE MENU
public void buildMenuBar(){
//INITIAILIZE
menuBar = new JMenuBar();
//BUILD FILE MENU
buildFileMenu();
//ADD TO MENU BAR
menuBar.add(fileMenu);
//SET
setJMenuBar(menuBar);
}
public void buildFileMenu(){
//INITIALIZE
fileMenu = new JMenu("File");
newGame = new JMenuItem("New");
pauseGame = new JMenuItem("Pause");
unpauseGame = new JMenuItem("Unpause");
exitGame = new JMenuItem("Exit");
//MNEMONICS
fileMenu.setMnemonic(KeyEvent.VK_F);
newGame.setMnemonic(KeyEvent.VK_N);
pauseGame.setMnemonic(KeyEvent.VK_P);
unpauseGame.setMnemonic(KeyEvent.VK_U);
exitGame.setMnemonic(KeyEvent.VK_X);
//LISTENERS
newGame.addActionListener(new MenuListener());
exitGame.addActionListener(new MenuListener());
//ADD TO FILEMENU
fileMenu.add(newGame);
fileMenu.add(pauseGame);
fileMenu.add(unpauseGame);
fileMenu.add(exitGame);
}