0

如何停止 Button2 的动作事件以及在 Button1 之后运行的更多事件。Button1 只需要做 Button1 Action Event 然后停止。

请帮助我,谢谢

public void actionPerformed(ActionEvent ae) {
    if (ae.getSource().equals(button1)){
        System.out.println("Button 1");

    }

    if (ae.getSource() == button2){
        System.out.println("Button 2!");
    }

编辑:

对不起,错误的代码

主要:

Button1.addActionListener(this);
        jPanel1.add(Button1);
        Button2.addActionListener(this);
        jPanel1.add(Button2);

不是主要的:

 public void actionPerformed(ActionEvent ae) {
        Object Button1 = null;
        if (!ae.getSource().equals(Button1)){
            System.out.println("Oben");
        }
        Object Button2 = null;
        if (ae.getSource() == (Button2)){
            System.out.println("Links");
        }


             }

如果我按下我的 Button1,我会得到“Oben”

如果我按下我的 Button2,我也会得到“Oben”

为什么我没有得到“链接”

4

3 回答 3

1

再看看你的(编辑的)代码。

Object Button1 = null;
if (!ae.getSource().equals(Button1)){
    System.out.println("Oben");
}

所以你在这里说的是以下内容,这将在两种情况下评估为真。

if (ae.getSource() != null)

这就是为什么结果总是Oben的原因。

如果您打算与不同的 进行比较Button1,请确保引用正确的对象。没有看到其余的代码很难说,但你可能想使用 ( this.Button1);

于 2013-05-29T15:41:28.777 回答
1

您的代码中有两个问题:

  1. 你正在设置Button1Button2null
  2. 您的 if 语句的布局方式使得它们中的多个可以在一次调用中运行actionPerformed

试试这个:

public void actionPerformed(ActionEvent ae) {
    if(ae.getSource().equals(this.Button1)) {
        System.out.println("Button 1");
    } else if (ae.getSource().equals(this.Button2)) {
        System.out.println("Button 2");
    }
}

此代码假定Button1和是该方法所属Button2的类的成员。actionPerformed

于 2013-05-29T15:50:48.360 回答
1
public void actionPerformed(ActionEvent ae) {
    Object Button1 = null;
    if (!ae.getSource().equals(Button1)){
        System.out.println("Oben");
    }
    Object Button2 = null;
    if (ae.getSource() == (Button2)){
        System.out.println("Links");
    }


         }

恐怕上面的代码没有什么意义,也不符合通常的做法。首先,执行不同动作的按钮应该有不同的监听器,特殊情况除外。这不是那些特殊情况之一。将您的代码拆分为:

public void actionPerformed(ActionEvent e)
{
     System.out.println("Oben");
     // This is the actionPerformed method for button 1.
}

public void actionPerformed(ActionEvent e)
{
     System.out.println("Links");
     // This is for button 2.
}

然后只需绑定到相关按钮。

于 2013-05-29T15:53:59.890 回答