0

我在面板上有 5 个按钮,分别命名为“添加”、“编辑”、“删除”、“确定”、“取消”。现在,如果我立即单击取消按钮,表单将终止。我已经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();
         }
     }
}
4

1 回答 1

1

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

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

...
else if(ae.getSource().equals(cancelButton))
{
    if (!addButton.isEnabled()) {
        disabledByDefault();
    } else {
        dispose();
    }
}
于 2013-04-09T11:01:07.720 回答