2013-01-02 39 views
0

嗯,對於MigLayout我很新,並且已經在白皮書和Quickstart上閱讀了它,但這還不夠。我放置了一個面板,並且在下面我希望一個面板佔用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

您可以指定組件應該在構造函數中使用grow XX其中XX是增長的百分比增長百分比。

在您的例子:

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

這是假設您想要的橙色面板採取了屏幕的70%,並在屏幕的藍色面板30%,在所有時間。

+0

謝謝!它解決了,非常簡單。 – crazy4

+0

「成長70」與「成長70%」不同。根據http://stackoverflow.com/questions/23001696/miglayout-column-constraint#answer-23028022,前者是渴望佔用組件中留下的空間(將佔據兩個組件之間70%的空白空間),而後者'增長,70%'意味着「佔據剩下的所有空間,並且這個列/行是總寬度/高度的70%。」 – FaithReaper