为什么我的按钮会自动禁用?

时间:2016-05-10 19:06:39

标签: java if-statement jbutton

我正在为老虎机编写代码,如果btnRespin被禁用,btnHold1被禁用,btnHold2被禁用,那么btnRespin无法自行停用,如果if (btnHold1.isEnabled()==false && btnHold2.isEnabled()==false) { counter = 0; counter2 = 0; timer1.stop(); timer2.stop(); btnHold1.setEnabled(false); btnHold2.setEnabled(false); } else if (btnHold1.isEnabled()==false && btnHold2.isEnabled()==false && event.getSource()==btnRespin) { counter = 0; counter2 = 0; timer1.stop(); timer2.stop(); counter3 = 0; timer3.start(); btnHold3.setEnabled(false); btnRespin.setEnabled(false); } 是按下。

这就是我所拥有的:

MERGE

2 个答案:

答案 0 :(得分:1)

当两个按钮都被禁用时,第一个if的条件为真,这样就不会评估第二个if的条件。

只需使用两个单独的ifs而不是if else:

if (btnHold1.isEnabled()==false && btnHold2.isEnabled()==false)
{
      counter = 0;
      counter2 = 0;
      timer1.stop();
      timer2.stop();
      btnHold1.setEnabled(false);
      btnHold2.setEnabled(false);
}


if (btnHold1.isEnabled()==false && btnHold2.isEnabled()==false && event.getSource()==btnRespin)
{
      counter = 0;
      counter2 = 0;
      timer1.stop();
      timer2.stop();
      counter3 = 0;
      timer3.start();
      btnHold3.setEnabled(false);
      btnRespin.setEnabled(false);

}

然而,这段代码仍然没有多大意义。为什么要在禁用btnHold1和btnHold2时禁用它们?并且

答案 1 :(得分:1)

您的You may or may not need the filter in this case. Note: I cannot post company code here thats why I modified the solution. This is to give you general idea how I have solved this problem. 声明比您的else if声明更具体。两者都会检查ifbtnHold1是否已停用,因此它会始终在btnHold2之前的if声明中显示。

尝试交换您的条件:

else if