Hallo,
also ich habe hier eine GUI in welchem es ein JLabel gibt ... das beinhaltet ein Bild. Während der Laufzeit wird dieses Bild von anderen Bildern überlagert.
Das habe ich so gelöst:
Nun ist es aber so, dass, wenn man die GUI minimiert, und dann wieder in den Vordergrund bringt, manchmal das "Überlagerungsbild" dann nicht mehr angezeigt wird, sondern das ursprüngliche Bild des JLabels ... und erst beim nächsten Mal, wenn wieder so eine Überlagerung stattfindet, dieses überdeckt wird.
Woran liegt das und was kann ich dagegen tun? Gibt es dafür eine einfache Lösung?
Ein simples repaint() hat nichts geändert. Ich habe etwas über ein Überschreiben der paintComponent-Methode gelesen, aber das erscheint mir kompliziert und ich verstehe das Ganze nicht wirklich.
Das Originalbild wird übrigens mit setIcon ins JLabel eingefügt, falls das relevant ist.
Liebe Grüße
sunny
also ich habe hier eine GUI in welchem es ein JLabel gibt ... das beinhaltet ein Bild. Während der Laufzeit wird dieses Bild von anderen Bildern überlagert.
Das habe ich so gelöst:
Java:
public void overlayMap(BufferedImage img) {
map.getGraphics().drawImage(img, 0, 0, this);
}
Nun ist es aber so, dass, wenn man die GUI minimiert, und dann wieder in den Vordergrund bringt, manchmal das "Überlagerungsbild" dann nicht mehr angezeigt wird, sondern das ursprüngliche Bild des JLabels ... und erst beim nächsten Mal, wenn wieder so eine Überlagerung stattfindet, dieses überdeckt wird.
Woran liegt das und was kann ich dagegen tun? Gibt es dafür eine einfache Lösung?
Ein simples repaint() hat nichts geändert. Ich habe etwas über ein Überschreiben der paintComponent-Methode gelesen, aber das erscheint mir kompliziert und ich verstehe das Ganze nicht wirklich.
Das Originalbild wird übrigens mit setIcon ins JLabel eingefügt, falls das relevant ist.
Liebe Grüße
sunny