2013-01-02 2 views
0

글쎄, MigLayout을 처음 접했고 백서와 빠른 시작에서이 글을 읽었지만 충분하지 않았습니다. 한 패널을 배치하고 그 중 하나의 패널을 30 % 차지하고 싶습니다. 창 및 다른 나머지 즉, 70 %. 창 크기가 조정되면 (최대화되면) 구성 요소가 엉망입니다. 다음과 같이 코드는 다음과 같습니다창이 MigLayout에서 크기가 조정될 때 예기치 않게 커집니다.

Mig_tmp1(){ 
    j=new JFrame("test"); 
    j.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    j.setLayout(new MigLayout("debug,fill","[70px]5[:70:250,grow]","[:100:]10[fill,grow]")); 

    one=new JPanel(); 
    one.setBackground(Color.red); 
    two=new JPanel(); 
    two.setBackground(Color.ORANGE); 
    three=new JPanel(); 
    three.setBackground(Color.BLUE); 

    j.add(one,"wrap,span,grow"); 
    j.add(two,"grow");//,"w 40!"); 
    j.add(three,"grow"); 

    //j.pack(); 
    j.setSize(400, 600); 
    j.setVisible(true); 
} 
+0

이 문제는이 포럼에서 몇 번 해결해야합니다. – mKorbel

+0

저는 초보자이며 사람들이 miglayout을 제안했으며이 레이아웃에 대해 배울 수있는 자습서가 많지 않으므로 저에게 도움을주십시오. 덕분에 – crazy4

답변

0

당신은 구성 요소가 XX이 성장하는 비율이다 grow XX를 사용하여 생성자에서 성장해야하는 비율을 지정할 수 있습니다. 당신의 예에서

는 : 가정 것

j.setLayout(new MigLayout("debug,fill", "[grow 70, fill]5[grow 30, fill]", "[:100:]10[fill,grow]")); 

당신은 오렌지색 패널이 항상 70 화면 %와 화면의 푸른 패널의 30 %를 먹고 싶어.

+0

! 그것은 밖으로 일했고 너무 쉬웠다. – crazy4

+0

'grow 70'은'grow, 70 %'과 다릅니다. http://stackoverflow.com/questions/23001696/miglayout-column-constraint#answer-23028022에 따르면 전자는 구성 요소에서 남겨진 공간을 차지하는 것에 열광하고 있습니다 (두 구성 요소 사이의 공백 공간의 70 %를 차지함)), 후자는'70 % 성장 '은 "남겨진 모든 공간을 차지하고이 행/열은 전체 너비/높이의 70 %입니다"를 의미합니다. – FaithReaper