JLabel zerstört Layout

Kai008

Erfahrenes Mitglied
Ich habe einen Thread, der manchmal ein JLabel erstellt. Sobald ich das Icon setze, wird das ganze Layout zerstört. Manche Labels verschwinden, manche werden in FlowLayout angeordnet, standartgemäß sind alle Null.

Java:
sword.createSwordLabel();
JLabel swordLabel = sword.getSwordLabel();
sword.setLocation(getX() + 10, getY() + 15);
Icon swordIcon = sword.getIcon((byte) 0);
swordLabel.setSize(swordIcon.getIconWidth(), swordIcon.getIconHeight());
swordLabel.setIcon(swordIcon);

Die einzig mögliche Fehlerquelle, die ich kenne, ist die Thread-Unsicherheit von Swing. Es gibt noch einen zweiten Thread, der ein Label ab und zu an eine andere Location setzt, deshalb denke ich, dass es an den JPanel auf den die Panels mit den Labels liegt, dass da irgendwas der Reihe nach nach oben aufgerufen wird. Hab schon versucht beides per syncroniced-Block zu locken, und in per invokeLater ausgeführt. Hat aber beides nichts gebracht. :(
 
Ich bin drauf gekommen, was los war: Ich habe vergessen, 2 JPanels ein anderes Layout zuzuweißen. Keine Ahnung wodurch der Fehler im einzelnen entstanden ist, aber das war die Lösung.
 
Zurück