JMenu 重复显示 showMessageDialog
JMenu repeadly show showMessageDialog
我设置了2个Jmenu项,一个是"New game",另一个是"About the game"。
但是,当我 运行 程序并按 "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 语句
if (arg0.getActionCommand().equals("About the game")) {
aboutGame();
}
我设置了2个Jmenu项,一个是"New game",另一个是"About the game"。 但是,当我 运行 程序并按 "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 语句
if (arg0.getActionCommand().equals("About the game")) {
aboutGame();
}