2016-08-01 7 views
0

JPanel을 추가 한 후 왜 포장 할 수 없는지 알아 내려고하고 있습니다. 내 목표는 클래스가 내 JPanels를 빌드하게하고 모든 JPanel이 서로 쌓인 상태로 기본 화면에 추가하는 것입니다. JLables로 JPanels를 대체하면이 작업을 수행 할 수 있습니다.Java Miglayout 포장 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

내가 할 노력하고 무엇을 : 여기 내 현재의 결과는

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

Passed Test

답변

0

당신이 JPanelJLabel을 추가하는 경우에, 당신이 필요로하는 JPanel 그 자체 안에 감싸도록하십시오. 모든 하위 항목이 채워지면 zPanel을 추가하십시오.

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

문제는 JLabel이 배치되지 않습니다. 하단 그림과 같이 제대로 작동합니다. 문제는 각 JLabel에 별도의 JPanel이 있으므로 JPanels가 줄 바꿈을하지 않는 것입니다. – Ardel

+1

맨 위 코드에, 나는 zpanel에서만 선언 된 것을 볼 수 있습니다. 따라서 모든 JLabel은 같은 JPanel 부모를가집니다. – Lee

+0

* Facepalm * 그럴 것입니다. 당신의 대답을 편집 할 수 있도록 내가 그 말을 올바르게 표시 할 수 있을까요? – Ardel