JPanel Bildwechsel repaint

Hallöle,

ich habe ein JFrame mit 20 mal 12 Feld aus JPanels. Auf allen JPanels male ich ein Bild drauf.
Nun habe ich eine Funktion, die das Design wechselt. Hierfür werden neue Bilder eingefügt und dann die repaint-Methode aufgerufen, um die neuen Bilder auf allen JPanels zu laden.
Leider wird diese nicht wie gewollt aufgerufen.
Ich habe hier eine Funktion, die über mein GameArray geht:

 					for(int x=0;x<size[0];x++) {
 						gameArr[x][y].repaintCell();
 					}
 				}```

Und in repaintCell hab ich schon absolut ALLES ausprobiert, was irgendwie etwas neuladen könnte:
```public void repaintCell() {
		this.repaint();
		this.removeAll();
		this.updateUI();
		this.revalidate();
	}```

Alle vier einzeln, alle zusammen und in verschiedenen Kombinationen. Es wird auch stets die paintComponent aufgerufen, wo ich mir mit System.out.println() 1:1 anzeigen lasse, dass er angeblich schon das andere Bild geladen hat. Aber weiterhin ist das alte Bild drauf. Er wechselt jede Zelle erst dann, wenn ich die ActionListener für mouseClicked auf die Zelle anwende.

Ich möchte euch nicht so sehr mit Code verwirren (auf Nachfrage würde ich den Anfügen), weil das ein generelles Problem bei mir ist, was in vielen Projekten vorherrscht.

Kann mir jemand verraten, wie ich das mit dem Neuladen der JPanel-Zellen wirklich korrekt mache?

ohne Code braucht man nicht zu sehr in Details zu spekulieren,

ein einfacher Fehler wäre etwa schon, dass du alle Panel oder die gesamte GUI 2x als Objekte vorliegen hast,
etwa in gameArr[][] separat angelegte Panel, nicht die in die GUI eingefügten

ein Satz wird angezeigt, dort funktioniert der MouseListener und auch Methoden würden funktionieren wenn aufgerufen,
und einmal ohne Anzeige, mit zahllosen bemühten, aber letztlich chancenlosen Aufrufen


Code langweilt nie, sondern ermöglicht bei Vollständigkeit, Überschaubarkeit und genauen Fehler meist sofortige exakte Lösung statt ewiges Herumraten

In der Regel reicht ein einfaches repaint(). Daraufhin wird dann die paintComponent() angestoßen, die ja deine JPanels „malt“, oder?

Um das Problem zu lösen wäre aber Code, am besten als KSKB, schon hilfreich.

Hallöle,

ich muss gestehen, ich habe gestern den Fehler selbst noch gefunden und es ist mal wieder sehr peinlich, überhaupt ein Thema aufgemacht zu haben. In der Tat hätte ein einfaches repaint() gereicht, wenn ich den Code, den ich entwickelt hätte, nicht in die falsche Methode, die erst bei anderen Aktionen später ausgelöst wird gepackt hätte. So einfach kann es manchmal sein!

Wen das Projekt als solches, wo das eigentlich auftrat interessiert, der kann sich das auf GitHub ansehen:

Ich bin dabei das Spiel SameGame zu bauen und wollte (und habe es nun geschafft) einen Designwechsler zwischen drei Designs realisieren.

Schöne Grüße und mal wieder Danke für eure Hilfsbereitschaft.

Gruß
Lukas