Memorie in Java: jButtonIcon vergleichen?

Ich entwerfe momentan ein Memorie in Java, welches als Projektarbeit bei unserem Lehrer abgegeben werden muss. Leider auch schon morgen. Wäre also gut, wenn ich schnell hilfe bekommen würde.

Kurzer Ablauf des bereits programmierten Bereiches:
Es wird ein JFrame entworfen mit Buttons auf denen das ButtonIcon das Bild von dem Kartenrücken ist. Nach dem klick auf den Button, ändert sich das Icon zu einem Bild.
Nachdem der zweite Button geklickt wurde, soll ein Vergleich stattfinden und bei ungleichem Icon, also ungleichem Bild, die Buttons wieder zurückgesetzt werden, bei gleichen Bildern/Icons sollen diese aufgedeckt bleiben.

Mein Grundgedanke bisher:
Ein Array, der gemischt wird und danach wird der Inhalt auf die Buttons verteilt. Das Memorie sei gemischt.
Eine Methode zum Vergleich der beiden gedrückten Buttons. Bei misserfolg werden nur die falschen wieder gedreht.

Meine Probleme/Frage?

Wie kann ich…

  1. eine Abhängigkeit zwischen dem jButtonIcon() und dem Array schaffen, worin meine „Karten“ gemischt vorliegen?
  2. die Inhalte zweier jButtonIcon() miteinander vergleichen? Eine get.jButtonIcon() gibt es leider nicht!
  3. nur die falsch gedrückten jButtons wieder umdrehen lassen?

Bisher funktioniert:
befüllen und mischen des arrays
einmaliges drehen der Icons, um Bild zu erfahren
counter, der die Methode vergleich() auslösen soll

Hallo,

Dann bist du aber spät dran.

Ich sag von vorn herein, man kanns bestimmt besser machen, ich hab jetzt nicht groß drüber nach gedacht. Daher nur ein Ansatz

Wie kann ich…

  1. eine Abhängigkeit zwischen dem jButtonIcon() und dem Array
    schaffen, worin meine „Karten“ gemischt vorliegen?

Durch das befüllen deines Arrays „weißt“ du ja welches Bild im Array bei welchem Index liegt. Das musst du dir merken (vlt in ner Map wobei der int der Index des Arrays ist und String bspw der Dateiname.) Den Index der geklickten Buttons kannste dir in ints merken. Bei jedem 2. Klick wird verglichen.

  1. die Inhalte zweier jButtonIcon() miteinander vergleichen?
    Eine get.jButtonIcon() gibt es leider nicht!

Kannst du durch die Map und den Index des Buttons.

  1. nur die falsch gedrückten jButtons wieder umdrehen lassen?

Genau so wie du sie beim ersten mal umdrehst. Du weisst welche du geklickt hast für die rufste die dreheUm(int index) Methode auf in der dann der Button auf Index X umgedreht wird.

Viel Erfolg

Gruß

Danke für deine Hilfe.

Ich hab es mit dem Button „merken“ so gemacht, wie du vorgeschlagen hast. Einfach ein Int genommen und den Wert geändert, je nach dem welcher Button geklickt wurde.

Die Verbindung hab ich dann auch hinbekommen. Mein Problem war, dass wir bisher nur mit Int und String Array gearbeitet haben, man dieses Problem aber ganz einfach lösen kann indem man einen

ImageIcon stapel[] = new ImageIcon[];

baut. Da kann man dann direkt die Icons für die Buttons speichern und auch auslesen. Kein lästiges „merken“. Somit ist es auch kein Problem, den stapel[] einfach mischen zu lassen und die Methode mischen() recht allgemein zu gestalten.