2016-08-01 22 views
0

Ich versuche herauszufinden, warum ich nicht nach dem Hinzufügen eines JPanel wickeln kann. Mein Ziel ist es, dass eine Klasse meine JPanels erstellt und dann wird sie mit allen JPanels, die aufeinander gestapelt sind, zum Hauptbildschirm hinzugefügt. Ich kann das zum Funktionieren bringen, wenn ich die JPanels durch JLables ersetze. Hier sind meine aktuellen Ergebnisse:Java Miglayout wrap JPanels

JPanel zPanel = new JPanel(); 
    for(int i = 0; i < zones.size(); i++) 
    { 
     JLabel zLabel = new JLabel(zones.get(i)); 
     zPanel.add(zLabel); 
     grid.add(zPanel,"wrap"); 
    } 

Failed Test

Und was ich versuche zu tun:

for(int i = 0; i < zones.size(); i++) 
    { 
     JLabel zLabel = new JLabel(zones.get(i)); 
     grid.add(zLabel,"wrap"); 
    } 

Passed Test

Antwort

0

Wenn Sie JLabel in JPanel sind hinzufügen, dann müssen Sie um es in die JPanel selbst zu wickeln. Fügen Sie die zPanel hinzu, wenn alle untergeordneten Elemente belegt sind.

JPanel zPanel = new JPanel(new MigLayout("wrap 1"); 
for(int i = 0; i < zones.size(); i++) 
{ 
    JLabel zLabel = new JLabel(zones.get(i)); 
    zPanel.add(zLabel); 
} 
grid.add(zPanel,"wrap"); 
+0

Das Problem ist nicht die JLabels nicht wickeln. Das funktioniert richtig, wie im unteren Bild zu sehen ist. Das Problem ist, dass die JPanels nicht umbrechen, da jedes JLabel ein separates JPanel hat. – Ardel

+1

auf den Top-Code, ich sehe, dass nur auf zpanel deklariert, daher hat alle JLabel die gleiche JPanel Elternteil. – Lee

+0

* Facepalm * das wäre es. Verstand redigieren Sie Ihre Antwort, damit ich das richtig markieren kann? – Ardel