Vergleichen Sie zwei Bild-icons?
Ich lief in ein Problem, während ich mache ein 4-player Schach-Spiel. Ich bin nicht in der Lage, um zu sehen, wenn zwei ImageIcons sind die gleichen. Ich habe vier arrays für die roten, blauen, grünen und gelben Figuren und meine Idee war, um zu sehen, ob das, was Stück die Spieler angeklickt abgestimmt die Teile in Ihrer Farbe-array. Aber wenn ich sagen, wie wenn(colorIcon.equals(clickedIcon)) gibt false zurück. Ich weiß, dass ist, weil .equals () - bezieht sich auf die Referenz und ich neuen Platz in der Erinnerung. So ist es keine Weise, die ich vergleichen kann, zwei ImageIcons? Vielen Dank für reaading!
Sie sollten sich nicht vergleichen die ImageIcons. Sie haben eine Klasse, die die Schach-Stück? Wenn so, Sie sollten vergleichen Sie die Art der schachfigur statt. Wenn Sie feststellen, selbst benötigen, vergleichen Sie das Bild-Symbol, um das problem zu lösen, ich denke, es ist ein design-problem in deinem code.
InformationsquelleAutor D347th | 2011-11-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie immer tun:
Und diese Klasse verwenden, anstatt eine raw ImageIcon
Statt:
müssten Sie:
Froh, dass es geholfen 🙂
Sollte man das nicht verwenden
String.equals()
stattString == String
?InformationsquelleAutor GETah
.equals()
bezieht sich nicht auf den gleichen Speicher verweisen. Es ist eine Methode, vergleicht die Objekte; es ist==
vergleicht die Referenzen.equals
Methode vonObject
.Object.equals
laut java-doc: "Die equals-Methode der Klasse Object implementiert die anspruchsvollsten möglich aquivalenzrelation auf Objekte; das heißt, für jede nicht null-Referenz Werte x und y, diese Methode gibt true zurück, wenn und nur wenn x und y beziehen sich auf die gleiche - Objekt (x == y den Wert true)." Daherequals
und==
sind genau die gleichen für dieImageIcon
KlasseDanke, dass war es, was ich meinte .gleich
InformationsquelleAutor melli-182
Es ist wirklich einfach:
InformationsquelleAutor Vidor Vistrom