【问题标题】:JMenu repeadly show showMessageDialogJMenu 反复显示 showMessageDialog
【发布时间】:2018-05-02 17:40:24
【问题描述】:

我设置了 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();


}

【问题讨论】:

    标签: java jmenu messagedialog


    【解决方案1】:

    排队

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

    if 语句后有一个分号。本质上,这将 if 语句简化为没有正文的 if 语句。所以jvm会处理真假,扔掉结果,移到下一行,也就是aboutGame()这一行。如果您删除它,问题应该会消失。顺便说一句,省略大括号从来都不是一个好主意,即使在一行 if 语句中也是如此

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-24
      • 1970-01-01
      • 2019-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多