我设置了2个Jmenu项,一个是“ New game”,另一个是“ About the game”。
但是,当我运行程序并按“新建游戏”时,显示了“关于游戏”对话框,那么如何解决此问题?

 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();
}

关于java - JMenu反复显示showMessageDialog,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50140570/

10-15 17:45