Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 用于菜单栏但不用于菜单项的助记符_Java_Menuitem_Menubar_Mnemonics - Fatal编程技术网

Java 用于菜单栏但不用于菜单项的助记符

Java 用于菜单栏但不用于菜单项的助记符,java,menuitem,menubar,mnemonics,Java,Menuitem,Menubar,Mnemonics,我的程序有一个菜单栏,其中一个菜单叫做“文件”。文件菜单中有4个选项:“新建”、“暂停”、“取消暂停”和“退出”。所有这五个都指定了助记符,但是只有一个用于文件的助记符按我所希望的方式工作 其他四个可以工作,但它们只有在我首先激活文件助记符时才能工作。i、 要激活“New”,我需要按Alt+F,Alt+N。我不认为记忆法应该是这样工作的,但我可能弄错了 这是我目前的代码,也许有人能指出我做错了什么 //MENU BAR private JMenuBar menuBar; pri

我的程序有一个菜单栏,其中一个菜单叫做“文件”。文件菜单中有4个选项:“新建”、“暂停”、“取消暂停”和“退出”。所有这五个都指定了助记符,但是只有一个用于文件的助记符按我所希望的方式工作

其他四个可以工作,但它们只有在我首先激活文件助记符时才能工作。i、 要激活“New”,我需要按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);
   }

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