我在制作4人棋牌游戏时遇到问题。我无法查看两个ImageIcons是否相同。我将红色,蓝色,绿色和黄色的棋子分成四个阵列,我的想法是查看玩家单击的棋子是否与他们的颜色阵列中的任何棋子相匹配。但是,如果我说像if(colorIcon.equals(clickedIcon)),它会返回false。我知道这是因为.equals()引用了引用,并且我在内存中添加了新的空间。那有什么办法可以比较两个ImageIcons?感谢您的收录!

最佳答案

您可以随时这样做:

public class MyImageIcon extends ImageIcon{
   String imageColor;
   // Getters and setters...
   // Appropriate constructor here.
   MyImageIcon(Image image, String description, String color){
       super(image, description);
       imageColor = color;
   }
   @Override
   public bool equals(Object other){
      MyImageIcon otherImage = (MyImageIcon) other;
      if (other == null) return false;
      return imageColor == other.imageColor;
   }
}


并使用此类代替原始ImageIcon

而不是:

ImageIcon myImage = new ImageIcon(imgURL, description);


你将会拥有:

MyImageIcon myImage = new MyImageIcon (imgURL, description, "RED");

07-26 03:04