JMenu重复显示showMessageDialog

时间:2018-05-02 17:40:25

标签: java jmenu messagedialog

我设置了2个Jmenu项目,一个是#34;新游戏"另一个是#34;关于游戏"。 但是,当我运行程序并按下#34;新游戏" ,#34;关于游戏的对话"显示,所以我该如何解决这个问题?

 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 :(得分:0)

在第

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

if语句后面有分号。基本上,这会将if语句简化为if而没有正文。所以jvm将处理它是真还是假,抛弃结果,然后移到下一行,即aboutGame()行。如果你删除它,问题应该消失。顺便说一下,如果陈述

,即使在一行上省略括号也绝不是一个好主意
if (arg0.getActionCommand().equals("About the game")) {
    aboutGame();
}