助记符适用于 MenuBar 但不适用于 MenuItems

Mnemonic working for MenuBar but not MenuItems

我的程序有一个菜单栏,其中有一个菜单名为 "File." 在文件菜单中有 4 个选项:"New"、"Pause"、"Unpause" 和"Exit"。所有这五个都分配了助记符,但只有文件的那个按我希望的方式工作。

其他四个有效,但只有我先激活文件的助记符,它们才有效。即要激活 "New",我需要按 Alt+FAlt+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);
   }

所以我要回答我自己的问题。我了解到像我尝试使用的助记符只有在菜单处于活动状态时才有效。这就是为什么他们使用 "File" 选项而不是 "New Game" 选项,除非文件选项已经打开。它工作正常,只是不是我理解的那样工作。