Java转到下一个图像并使用相同的按钮返回

Java转到下一个图像并使用相同的按钮返回,java,image,swing,button,if-statement,Java,Image,Swing,Button,If Statement,我试图用一个按钮显示另一张图片,然后用同一个按钮返回上一张图片 private void button2ActionPerformed(java.awt.event.ActionEvent evt) { if (labelIcon == labelIcon) centerLabel.setIcon(labelicon2); if (labelIcon == labelicon2)

我试图用一个按钮显示另一张图片,然后用同一个按钮返回上一张图片

private void button2ActionPerformed(java.awt.event.ActionEvent evt) 
{                                        
    if (labelIcon == labelIcon)
       centerLabel.setIcon(labelicon2); 

    if (labelIcon == labelicon2)
       centerLabel.setIcon(labelIcon);
}
如果只换成另一张图片,而不回去,我会很难受。我是否需要以某种方式(不知道如何)获取标签属性以执行第二个if语句,或者我需要某种循环?
我可以用两个按钮,但我认为可以用一个按钮。我错了吗?

添加一个
int
来跟踪你在哪个图像上,如果它在1上,你就变为2,如果它在2上,你就变为1

i、 e

此代码将始终返回TRUE,因为您正在比较同一对象。 我想你是这样的

Icon labelIcon = centerLabel.getIcon();
if (labelIcon == this.labelIcon)
centerLabel.setIcon (labelicon2);
if (labelIcon == this.labelicon2)
        centerLabel.setIcon(labelIcon);
    }   

因为前面三个答案都有它们的缺点,这里是我的。使用布尔值检查按钮是否已单击

private boolean clicked = false;

private void button2ActionPerformed(ActionEvent evt) {   //importing stuff is always nice...                                      
  if (!clicked) {
    centerLabel.setIcon (labelicon2); 
    clicked = true;
  } else {
    centerLabel.setIcon(labelIcon);
    clicked = false;
  }
}

布尔值会更好。在这种情况下会更好,但如果他们想添加另一个图像,则需要对编号变量进行更改,因此我建议将
int
作为起点。否。OP说明应使用相同的按钮。如果有三个图像,不可能使用同一个按钮。你能用int解释一下吗。我应该比较I==1设置图像1还是I==2设置图像2?@当然,如果你愿意,你可以使用一个按钮围绕无限多的图像旋转。比较对象时使用.equals。不确定为什么会被否决。。。有人愿意解释一下吗?虽然效率很低。此解决方案不可扩展,导致可读性稍差的代码。“如果没有点击”这个短语并不像“如果显示图像1”那样明显。实际上,我在否决投票时有点苛刻。但它不允许我删除。正如我所说,没有解决方案是可扩展的,因为OP明确表示他想使用一个按钮。这段代码的可读性不亚于使用int。向下投票是指质量较差的答案。如果你在文章中进行编辑,我可以删除向下投票。
Icon labelIcon = centerLabel.getIcon();
if (labelIcon == this.labelIcon)
centerLabel.setIcon (labelicon2);
if (labelIcon == this.labelicon2)
        centerLabel.setIcon(labelIcon);
    }   
private boolean clicked = false;

private void button2ActionPerformed(ActionEvent evt) {   //importing stuff is always nice...                                      
  if (!clicked) {
    centerLabel.setIcon (labelicon2); 
    clicked = true;
  } else {
    centerLabel.setIcon(labelIcon);
    clicked = false;
  }
}