Java多按钮点击

Java多按钮点击,java,swing,jbutton,actionlistener,Java,Swing,Jbutton,Actionlistener,我在面板上有5个按钮,分别是“添加”、“编辑”、“删除”、“确定”、“取消”。现在,如果我直接单击cancel按钮,表单将终止。我已经从click事件调用了dispose()方法 但是,我想做的是:如果我先单击“添加”按钮,然后单击“取消”按钮,程序应该返回到初始状态,尽管由于dispose()而终止 我该怎么做 以下是我的添加按钮操作事件代码: public class TheButtounHandler implements ActionListener { @Override

我在面板上有5个按钮,分别是“添加”、“编辑”、“删除”、“确定”、“取消”。现在,如果我直接单击cancel按钮,表单将终止。我已经从click事件调用了
dispose()
方法

但是,我想做的是:如果我先单击“添加”按钮,然后单击“取消”按钮,程序应该返回到初始状态,尽管由于
dispose()
而终止

我该怎么做

以下是我的添加按钮操作事件代码:

public class TheButtounHandler implements ActionListener
{
     @Override
     public void actionPerformed(ActionEvent ae) 
     {
         if(ae.getSource().equals(addButton))
         {
             enableDisabledByDefault();
             editButton.setEnabled(false);
             deleteButtoun.setEnabled(false);
             addButton.setEnabled(false);
             if(ae.getSource().equals(cancelButton))
             {
                 disabledByDefault();
             }
         }
         else if(ae.getSource().equals(cancelButton))
         {
             dispose();
         }
     }
}

通过选中
ActionEvent.getSource()
,您试图在与
add
按钮相同的
if
分支中处理
cancel
按钮,但此代码永远不会执行,因为源不能同时是
addButton
cancelButton

相反,您需要将
disabledByDefault()
调用移动到处理
cancelButton
的部分,并通过添加新变量(在按下
add
按钮时设置)来区分之前是否按下了
add
,或者只需检查
添加
按钮的状态:

...
else if(ae.getSource().equals(cancelButton))
{
    if (!addButton.isEnabled()) {
        disabledByDefault();
    } else {
        dispose();
    }
}