2016-05-10 6 views
0

Я пишу код для игрового автомата, и мой 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); 

} 
+0

Было бы интересно посмотреть, прежде, чем еще, если – NineBerry

+0

@NineBerry если (btnHold1.isEnabled() == ложь && btnHold2.isEnabled() == ложь) \t { \t \t counter = 0; \t \t counter2 = 0; \t \t timer1.stop(); \t \t timer2.stop(); \t \t btnHold1.setEnabled (false); \t \t btnHold2.setEnabled (false); \t} – MichaelG

ответ

1

Когда обе кнопки отключены, то условие первого, если это верно, так чтобы состояние второй, если никогда не будет оцениваться.

Просто использовать два отдельных сослагательного наклонения вместо того, если еще:

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, когда они уже отключены? И

+0

Это работает и отключает кнопку «Ресимин», однако таймер 3 не запускается, как только нажата кнопка «Респиратор», прежде чем он отключит себя. – MichaelG

+0

Откуда вы знаете это? Я полагаю, у вас есть другой код в этой функции, который отключает timer3. Вам просто нужно составить хороший план своей логики, а затем реализовать эту логику. – NineBerry

1

Ваша заявка else if более конкретна, чем заявка if. Оба проверяются, если btnHold1 и btnHold2 отключены, поэтому он всегда будет в вашем заявлении if перед вашим else if.

Попробуйте поменять свои условия так:

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); 
} 


else if (btnHold1.isEnabled()==false && btnHold2.isEnabled()==false) 
{ 
     counter = 0; 
     counter2 = 0; 
     timer1.stop(); 
     timer2.stop(); 
     btnHold1.setEnabled(false); 
     btnHold2.setEnabled(false);  
    } 
Смежные вопросы