Я установил 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();
}




В соответствии
if (arg0.getActionCommand().equals("About the game")); aboutGame();
После оператора if ставится точка с запятой. По сути, это сокращает оператор if до оператора if без тела. Таким образом, jvm обработает, истинно это или нет, отбросит результаты и перейдет к следующей строке, которая является строкой aboutGame(). Если вы удалите его, проблема исчезнет. Кстати, никогда не стоит опускать фигурные скобки, даже в одной строке, если операторы
if (arg0.getActionCommand().equals("About the game")) {
aboutGame();
}