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
'点击。
答案 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;
}
}