Java 为什么它要执行两个动作?

Java 为什么它要执行两个动作?,java,Java,我正在编写一个简单的Jframe程序,带有一个菜单栏和一些选项。现在,当我单击“打开”选项时,它执行“打开”操作应该执行的操作,但它也执行“关闭”操作。不知道为什么。以下是相应的代码 //MenuItems menuItem = new JMenuItem("New"); menuOptions.add(menuItem); menuItem = new JMenuItem("Open"); menuOptions.add(menuItem); menuItem.addActionListen

我正在编写一个简单的Jframe程序,带有一个菜单栏和一些选项。现在,当我单击“打开”选项时,它执行“打开”操作应该执行的操作,但它也执行“关闭”操作。不知道为什么。以下是相应的代码

//MenuItems
menuItem = new JMenuItem("New");
menuOptions.add(menuItem);

menuItem = new JMenuItem("Open");
menuOptions.add(menuItem);
menuItem.addActionListener(new Actions());
menuOptions.addSeparator();

menuItem = new JMenuItem("Save");
menuOptions.add(menuItem);
menuItem.addActionListener(new Actions());
menuOptions.addSeparator();

menuItem = new JMenuItem("Close");
menuOptions.add(menuItem);
menuItem.addActionListener(new Actions());
以及actions类:

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.io.IOException;

class Actions implements ActionListener
{
    DisplayText dt;
    public void actionPerformed(ActionEvent e)
    {
        if(e.getActionCommand().equalsIgnoreCase("Open"))
        {
            BasicFile f = new BasicFile();

            // Important to encapsulate in try-catch block.
            try{    
                dt = new DisplayText( f.getName(), f.getContents());
            }catch(IOException ex){
                ex.printStackTrace();//in case of exeption print to find error.
            }

            //Print to console for debuggin.   
            System.out.println(f.getName() ); //"The string that was clicked " + e.getActionCommand());
         }

         if(e.getActionCommand().equalsIgnoreCase("Close"));
         {
             dt = new DisplayText(00);
             System.exit(0);
         }
    }
}

if(例如getActionCommand().equalsIgnoreCase(“关闭”);//格式化,格式化,格式化。@尤达,你的编辑,尽管批准了,还是删除了这个问题中有问题的代码。以后请多加小心。@ColinD谢谢你的评论。下次我会更小心的。我怎么会错过这么小的东西。。。非常感谢。