麻烦的是“如果陈述'在其他' if语句'

时间:2016-11-19 02:49:53

标签: java if-statement

if(clicked == button) {
    button.setIcon(image1);
    if(clicked == button2) {
        button2.setIcon(image2)
        button1.setIcon(image0)
     }
}

基本上我希望代码执行的操作是点击&{39; button'它的图片将被设置为' image1'如果发生(特别是之前),如果点击另一个按钮,它会将该按钮(按钮2)设置为' image2'并使第一个按钮显示' image0'它的闲置"图像,如果你愿意的话。

现在,如果所有这一切都有意义,我想回答一下为什么点击“按钮2”'点击'按钮'什么都不做。

是的,我有动作监听器,以及JLabel等的所有设置,我需要帮助的是将if语句放在另一个if语句中以运行'在第一个if语句之后,并且只有在第一个' button'点击。

2 个答案:

答案 0 :(得分:0)

您必须至少声明一个私有布尔变量来检查是否单击了第一个按钮。

然后,您将使用逻辑和(&&)运算符检查在单击其他按钮之前是否单击了第一个按钮。

private boolean firstBtnClicked = false;

然后您将修改您的代码,如下所示:

if(clicked == button) {
button.setIcon(image1);
firstBtnClicked = true;
}
if(firstBtnClicked == true && clicked == button2) {
    button2.setIcon(image2);
    button1.setIcon(image0);
}

我希望这有效。

答案 1 :(得分:0)

你已经在按钮1点击事件中应用了按钮2点击事件,因此它将不会随时执行,因为它将检查按钮1然后点击将始终是按钮1因此它将永远不会进入按钮2并且如果你点击将按钮2然后它将不会从第一个条件进入内部因此这是不正确的逻辑,

为了使两个事件分开并为它应用标志,只有它可以工作

检查以下答案

//Declare one variable at top like below
boolean isButtonClicked = false;

   if(clicked == button) 
   {
       button.setIcon(image1);
       isButtonClicked = true;
   }
   else if(clicked == button2)
   {
      if(isButtonClicked) 
      {
           button2.setIcon(image2);
           button1.setIcon(image0);
           isButtonClicked = false;
      }
   }