JMenu неоднократно показывать showMessageDialog - PullRequest
0 голосов
/ 02 мая 2018

Я установил 2 элемента Jmenu, один - «Новая игра», другой - «Об игре». Однако, когда я запускаю программу и нажимаю «Новая игра», появляется диалоговое окно «Об игре», так как я могу решить эту проблему?

 public Game() {
     JMenuBar menuBar = new JMenuBar();
     this.mainFrame.setJMenuBar(menuBar);
     JMenu aMenu = new JMenu ("New Game");
     menuBar.add(aMenu);
     newMenuItem("New Game", aMenu, this);
     JMenu bMenu = new JMenu("About");
     menuBar.add(bMenu);
     newMenuItem("About the game",bMenu,this);

      }


 public void aboutGame () {
    final String AboutGameText = 
               " The game is about...";
         JOptionPane.showMessageDialog(this.mainFrame, AboutGameText, "About the game", JOptionPane.PLAIN_MESSAGE);

   }



  public void actionPerformed(ActionEvent arg0) {
    if (arg0.getActionCommand().equals("New Game")) Game();
    if (arg0.getActionCommand().equals("About the game")); aboutGame();


}

1 Ответ

0 голосов
/ 02 мая 2018

В строке

if (arg0.getActionCommand().equals("About the game")); aboutGame();

У вас есть точка с запятой после оператора if. По сути, это сводит оператор if к просто if без тела. Таким образом, jvm обработает, будет ли это истина или ложь, отбросит результаты и перейдет на следующую строку, которая является строкой aboutGame(). Если вы удалите его, проблема должна исчезнуть. Между прочим, никогда не стоит опускать фигурные скобки, даже в одной строке, если операторы

if (arg0.getActionCommand().equals("About the game")) {
    aboutGame();
}
...