gpt4 book ai didi

java - 为什么它执行两个 Action ?

转载 作者:行者123 更新时间:2023-11-29 05:24:26 26 4
gpt4 key购买 nike

我正在编写一个简单的 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());

还有 Action 类:

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 (e.getActionCommand().equalsIgnoreCase("Close")); // <--- remove this semi colon

该分号关闭了 if 子句,使您认为与 if 相关联的代码成为可能始终开火,无论什么命令。

关于java - 为什么它执行两个 Action ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23253264/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com