Heim > Java > javaLernprogramm > Warum wird mein JPanel in meinem kachelbasierten Puzzlespiel nicht aktualisiert?

Warum wird mein JPanel in meinem kachelbasierten Puzzlespiel nicht aktualisiert?

Susan Sarandon
Freigeben: 2024-11-29 01:23:11
Original
363 Leute haben es durchsucht

Why Isn't My JPanel Updating in My Tile-Based Puzzle Game?

JPanel wird im Puzzlespiel nicht aktualisiert

In einem Puzzlespiel mit zufällig platzierten Kacheln wird das JPanel, das die Kacheln hostet, nicht aktualisiert, wenn Bilder vorhanden sind hinzugefügt. Dieses Problem verhindert, dass die neuen Bilder angezeigt werden, wodurch das Puzzle nicht mehr spielbar ist.

Verstehen des Problems

Das Problem liegt in der Methode addComponents(), die dazu verwendet wird Bilder zum JPanel hinzufügen. Wenn die aktualisierten Bilder an die Methode übergeben werden, werden die vorhandenen Komponenten ordnungsgemäß entfernt, das JPanel wird jedoch nicht ordnungsgemäß erneut validiert und neu gezeichnet. Dies führt dazu, dass die neuen Bilder nicht angezeigt werden.

Lösung

Um das Problem zu beheben, sollte die addComponents()-Methode überarbeitet werden, um die erforderlichen Schritte zur Neuvalidierung und Neulackierung einzuschließen . Der aktualisierte Code unten stellt sicher, dass das JPanel mit den neuen Bildern aktualisiert wird:

public void addComponents(Img[] im){
    this.removeAll();
    for(int i=0; i<16; i++){
        im[i].addActionListener(this);
        im[i].setPreferredSize(new Dimension(53,53));
        add(im[i]);
    }
    this.revalidate();

    **Repaint the JPanel to display the updated images**
    this.repaint();
}
Nach dem Login kopieren

Mit dieser Änderung entfernt die addComponents()-Methode korrekt die vorhandenen Bilder, fügt die neuen Bilder hinzu, validiert das JPanel erneut und zeichnet neu es mit den aktualisierten Kacheln. Das Puzzlespiel sollte jetzt ordnungsgemäß funktionieren und die neuen Bilder im JPanel anzeigen.

Das obige ist der detaillierte Inhalt vonWarum wird mein JPanel in meinem kachelbasierten Puzzlespiel nicht aktualisiert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage