有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

多次点击swing Java按钮

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

然而,我想做的是:如果我先单击add按钮,然后单击cancel按钮,程序应该返回到初始状态,尽管由于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();
         }
     }
}

共 (1) 个答案

  1. # 1 楼答案

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

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

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