2011-04-19 35 views
6

我想复制图示例:你如何让MiGLayout的行为像缠绕布局?

Wrap Layout

使用MiGLayout。我尝试了一些组合,但是我很难让 在容器缩小时自动将 包装到新行中。

有人可以提供一个工作的例子吗?

编辑: 这里是该程序的外壳:

import javax.swing.JButton; 
import javax.swing.JFrame; 
import javax.swing.JPanel; 
import net.miginfocom.swing.MigLayout; 


public class MiGTest extends JFrame{ 
    private JPanel jPanel; 
    private JButton jButton; 

    public static void main(String[] args) { 
     new MiGTest().setVisible(true); 
    } 

    public MiGTest(){ 
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     setLayout(new MigLayout("debug")); 

     initComponents(); 
     addComponents(); 
     pack(); 
    } 


    private void addComponents() {  
     add(jPanel);{ 
      for (int i = 0; i < 10; i++) { 
       jPanel.add(new JButton("" + i)); 
      } 
     } 
    } 

    private void initComponents() { 
     jPanel = new JPanel(new MigLayout("debug")); 
     jButton = new JButton("Test"); 
    } 
} 
+0

听起来好像你试图将一个方形的钉子推入圆孔。为什么在需要不同的布局效果时使用MiGLayout? – 2011-04-19 12:04:14

+2

@Hovercraft引用自miglayout.com:“你永远不必再次切换到另一个布局管理器!”。如果事实证明MigLayout不能做到这一点,我将使用Wrap Layout代替。但我很想知道这是否可能。 – Datoraki 2011-04-19 12:22:21

+0

我认为MiGLayout支持这一点并将其称为单元格内流:有一个包含多个组件的单元,它们将像这样流动。 – 2011-04-19 12:46:43

回答

9
+0

地狱之物! +1 * 2获得最佳信息,谢谢! – Ben 2011-12-07 06:46:10

0

我一直在声明.width(“xx%”),然后在行的宽度合计为100%时调用wrap。如果你可以声明每个组件都是某一行的某个百分比(它们不一定都是相同的百分比),那么这种方法就行得通。